Naar inhoud springen
cd /languages
Dynamische systemenProgrammerenVolledige graafondersteuning

Python-ondersteuning in Maguyva: AI-codezoeken en refactoring

Maguyva ondersteunt Python met AST-parsing en symboolextractie, en helpt AI-agents decorators, self/cls-methods, imports en cross-module-afhankelijkheden te volgen in echte Python-repositories.

Waar Python-repo’s oppervlakkige AI-tools meestal breken

Python is de plek waar veel AI-codetools er eerst goed uitzien en vervolgens in productie beginnen te gokken. De lastige delen zijn bekend: gedecoreerde entrypoints, service-classes, type stubs, overal kleine helpermodules, en methods die alleen zinvol zijn zodra je self of cls weer verbindt met de class waartoe ze behoren.

Voor Python is de echte vraag niet “kan het .py-bestanden lezen?” De vraag is of de agent onderbouwd kan blijven terwijl hij beweegt van een endpoint naar een service, van een achtergrondtaak naar een helper, of van een classnaam naar de methods die het gedrag daadwerkelijk implementeren.

Wat Maguyva daadwerkelijk extraheert in Python

Maguyva behandelt Python als een volwaardige structurele taal. De configuratie dekt .py, .pyw en .pyi; koppelt decorated_definition terug aan een functiesymbool; en kwalificeert self / cls method-calls terug naar de omsluitende class. Dat is belangrijk omdat dit precies de plekken zijn waar Python-repositories een mens voor de hand liggend beginnen te lijken en een LLM vaag.

Het filtert ook veel standaardbibliotheekruis uit de relatie-extractie. Dat betekent dat veelvoorkomende runtime-calls uit modules zoals pathlib, typing of logging minder snel de repository-specifieke relaties overstemmen waar het je daadwerkelijk om gaat.

Nuttige MCP-workflows voor Python-repo’s

De eenvoudigste nuttige workflow is:

  • Begin met intelligent_search voor een gedragsvraag zoals “retrylogica rond factuursynchronisatie” of “permissiecontroles in facturatie-endpoints”.
  • Schakel over naar find_symbol zodra je de classnaam of functienaam kent waar het je om gaat.
  • Gebruik dependency_search met inkomende traversal voordat je een gedeelde service, helper of basisclass refactoreert.

Dat patroon is beter dan een agent vanaf nul vragen om “de facturatieflow bij te werken”. Het laat de agent eerst een kaart opbouwen en pas daarna code wijzigen.

Wanneer deze pagina nuttig is

Deze pagina is voor Python-repo’s die al enige ouderdom en complexiteit hebben: servicecode, jobs, scripts, gegenereerde types en omliggende config. Als jouw belangrijkste vergelijking over polyglot webmonorepo’s gaat, lees dan ook de TypeScript-gids. Heb je alleen de volledige ondersteuningsmatrix nodig, gebruik dan compatibiliteit.

Beste toepassing

  • >FastAPI-, Django-, dataplatform- of interne-toolingrepo's waar applicatiecode en operationele scripts samenleven.
  • >Teams die langlopende Python-services refactoren die al decorators, achtergrondtaken en veel impliciete bedrading hebben.
  • >Agent-workflows die meer nodig hebben dan grep voordat ze een handler, service, model of helper wijzigen.

Agentworkflows

  • >Traceer een endpoint, taak of CLI-commando door helpers en gedeelde modules voordat je het bewerkt.
  • >Vind waar een service, class of utility-functie wordt geïnstantieerd en hergebruikt in de hele repo.
  • >Vergelijk naburige implementaties zodat de agent de juiste abstractie bewerkt in plaats van de dichtstbijzijnde stringmatch.

Enginedetails

  • >Gedecoreerde definities worden nog steeds als functies behandeld, zodat gedecoreerde views en taken doorzoekbaar blijven als symbolen.
  • >`self`- en `cls`-methodeaanroepen worden teruggekoppeld naar de omsluitende klasse, wat helpt om de graaf bruikbaar te houden in klasse-zware servicecode.
  • >Import-, aanroep- en symboolnormalisatoren zijn ingeschakeld terwijl veelvoorkomende stdlib-ruis zoals `pathlib.*`, `typing.*` en `logging.*` uit relaties wordt gefilterd.

Nuttige MCP-instappunten

  • intelligent_search

    Begin met een conceptuele query zoals “retry-logica rond factuursynchronisatie” en stel `language_filter="python"` in als de repo meertalig is.

  • find_symbol

    Gebruik dit wanneer je de klasse- of functienaam kent en de definitie plus referenties nodig hebt voordat je gaat wijzigen.

  • dependency_search

    Gebruik de inkomende richting voordat je een gedeelde service of helper refactort, om te zien wat ervan afhangt.