Zum Inhalt springen
cd /languages
Dynamische SystemeProgrammierungVollständiger Graph-Support

Python-Unterstützung in Maguyva: KI-Codesuche und Refactoring

Maguyva unterstützt Python mit AST-Parsing und Symbolextraktion und hilft KI-Agents dabei, Decorators, self/cls-Methoden, Imports und modulübergreifende Abhängigkeiten in echten Python-Repositories zu verfolgen.

Wo Python-Repos oberflächliche KI-Tools meist scheitern lassen

Python ist der Ort, an dem viele KI-Coding-Tools zunächst gut aussehen und dann in der Produktion anfangen zu raten. Die schwierigen Teile sind bekannt: dekorierte Einstiegspunkte, Service-Klassen, Type Stubs, überall kleine Helper-Module und Methoden, die erst Sinn ergeben, wenn man self oder cls wieder mit der Klasse verbindet, zu der sie gehören.

Bei Python lautet die eigentliche Frage nicht „kann es .py-Dateien lesen?“ Die Frage ist, ob der Agent fundiert bleibt, während er sich von einem Endpunkt zu einem Service, von einem Hintergrund-Task zu einem Helper oder von einem Klassennamen zu den Methoden bewegt, die das Verhalten tatsächlich implementieren.

Was Maguyva in Python tatsächlich extrahiert

Maguyva behandelt Python als vollwertige strukturelle Sprache. Die Konfiguration deckt .py, .pyw und .pyi ab, ordnet decorated_definition wieder einem Funktionssymbol zu und qualifiziert self / cls-Methodenaufrufe zurück zur umschließenden Klasse. Das ist wichtig, weil genau das die Stellen sind, an denen Python-Repositories für einen Menschen offensichtlich, für ein LLM aber unscharf werden.

Außerdem filtert es viel Standardbibliotheks-Rauschen aus der Beziehungsextraktion heraus. Das bedeutet, dass gängige Laufzeitaufrufe aus Modulen wie pathlib, typing oder logging seltener die repository-spezifischen Beziehungen überdecken, die dich eigentlich interessieren.

Nützliche MCP-Workflows für Python-Repos

Der einfachste nützliche Workflow ist:

  • Starte mit intelligent_search für eine Verhaltensfrage wie „Retry-Logik rund um den Invoice-Sync“ oder „Berechtigungsprüfungen in Billing-Endpunkten“.
  • Wechsle zu find_symbol, sobald du den Klassen- oder Funktionsnamen kennst, der dich interessiert.
  • Nutze dependency_search mit eingehender Traversierung, bevor ein gemeinsam genutzter Service, Helper oder eine Basisklasse refactored wird.

Dieses Muster ist besser, als einen Agenten aus dem Stand zu bitten, „den Billing-Flow zu aktualisieren“. Es lässt den Agenten zuerst eine Karte erstellen und erst danach Code ändern.

Wann diese Seite nützlich ist

Diese Seite richtet sich an Python-Repos, die bereits ein gewisses Alter und eine gewisse Komplexität haben: Service-Code, Jobs, Skripte, generierte Typen und umgebende Konfiguration. Wenn dein Hauptvergleich eher polyglotte Web-Monorepos betrifft, lies auch den TypeScript-Guide. Wenn du nur die vollständige Support-Matrix brauchst, nutze Kompatibilität.

Am besten geeignet

  • >FastAPI-, Django-, Data-Platform- oder interne Tooling-Repos, in denen Anwendungscode und operative Skripte zusammenleben.
  • >Teams, die langlebige Python-Services refactoren, die bereits Decorators, Hintergrund-Jobs und viel implizite Verdrahtung haben.
  • >Agent-Workflows, die mehr als grep brauchen, bevor ein Handler, Service, Model oder Helper geändert wird.

Agentenabläufe

  • >Einen Endpunkt, Task oder CLI-Befehl durch Helper und gemeinsam genutzte Module verfolgen, bevor er bearbeitet wird.
  • >Herausfinden, wo ein Service, eine Klasse oder eine Utility-Funktion im gesamten Repo instanziiert und wiederverwendet wird.
  • >Benachbarte Implementierungen vergleichen, damit der Agent die richtige Abstraktion bearbeitet statt der nächstbesten Textübereinstimmung.

Engine-Einordnung

  • >Dekorierte Definitionen werden weiterhin als Funktionen behandelt, sodass dekorierte Views und Tasks als Symbole durchsuchbar bleiben.
  • >`self`- und `cls`-Methodenaufrufe werden auf die umschließende Klasse zurückgeführt, was dem Graph hilft, in klassenlastigem Service-Code nützlich zu bleiben.
  • >Import-, Aufruf- und Symbol-Normalisierer sind aktiviert, während gängiges Stdlib-Rauschen wie `pathlib.*`, `typing.*` und `logging.*` aus den Beziehungen herausgefiltert wird.

Nützliche MCP-Einstiegspunkte

  • intelligent_search

    Starte mit einer konzeptionellen Anfrage wie „Retry-Logik rund um Invoice-Sync“ und setz `language_filter="python"`, wenn das Repo polyglott ist.

  • find_symbol

    Nutz es, wenn du den Klassen- oder Funktionsnamen kennst und Definition plus Referenzen vor dem Editieren brauchst.

  • dependency_search

    Nutz die eingehende Richtung, bevor du einen gemeinsam genutzten Service oder Helper refactorst, um zu sehen, was davon abhängt.