Hoppa till innehåll
cd /languages
Dynamiska systemProgrammeringFullt grafstöd

Python-stöd i Maguyva: AI-kodsökning och refaktorering

Maguyva stöder Python med AST-parsning och symbolextraktion, vilket hjälper AI-agenter följa dekoratorer, self/cls-metoder, importer och modulöverskridande beroenden i verkliga Python-repositorier.

Var Python-repon vanligtvis avslöjar ytliga AI-verktyg

Python är där mycket AI-kodverktyg ser bra ut till en början och sedan börjar gissa i produktion. De svåra delarna är bekanta: dekorerade startpunkter, tjänsteklasser, typstubbar, små hjälpmoduler överallt, och metoder som bara går att förstå när man kopplar samman self eller cls med klassen de tillhör.

För Python är den verkliga frågan inte “kan den läsa .py-filer?” Frågan är om agenten kan förbli grundad medan den rör sig från en endpoint till en tjänst, från ett bakgrundstask till en hjälpfunktion, eller från ett klassnamn till metoderna som faktiskt implementerar beteendet.

Vad Maguyva faktiskt extraherar i Python

Maguyva behandlar Python som ett fullt strukturellt språk. Konfigurationen täcker .py, .pyw och .pyi; mappar decorated_definition tillbaka till en funktionssymbol; och kvalificerar self- / cls-metodanrop tillbaka till den omslutande klassen. Det spelar roll eftersom de är exakt de ställen där Python-repositorier börjar kännas självklara för en människa och luddiga för en LLM.

Den filtrerar också bort mycket brus från standardbiblioteket ur relationsextraktionen. Det betyder att vanliga körtidsanrop från moduler som pathlib, typing eller logging har mindre sannolikhet att dränka de repositoriespecifika relationer man faktiskt bryr sig om.

Användbara MCP-arbetsflöden för Python-repon

Det enklaste användbara arbetsflödet är:

  • Börja med intelligent_search för en beteendefråga som “återförsökslogik kring fakturasynk” eller “behörighetskontroller i faktureringsendpoints”.
  • Byt till find_symbol när du väl vet klassens eller funktionens namn du bryr dig om.
  • Använd dependency_search med inkommande traversering innan en delad tjänst, hjälpfunktion eller basklass refaktoreras.

Det mönstret är bättre än att be en agent “uppdatera faktureringsflödet” från en kallstart. Det låter agenten bygga en karta först och ändra kod sedan.

När den här sidan är användbar

Den här sidan är för Python-repon som redan har viss ålder och komplexitet: tjänstekod, jobb, skript, genererade typer och omgivande konfiguration. Om din huvudsakliga jämförelse är över polyglotta webbmonorepon, läs TypeScript-guiden också. Om du bara behöver den fullständiga stödmatrisen, använd kompatibilitet.

Bäst lämpad för

  • >FastAPI-, Django-, dataplattforms- eller interna verktygsrepon där applikationskod och operativa skript lever tillsammans.
  • >Team som refaktorerar långlivade Python-tjänster som redan har dekoratorer, bakgrundsjobb och mycket underförstådd sammankoppling.
  • >Agentarbetsflöden som behöver mer än grep innan en handler, tjänst, modell eller hjälpfunktion ändras.

Agentarbetsflöden

  • >Spåra en endpoint, ett task eller ett CLI-kommando genom hjälpfunktioner och delade moduler innan det redigeras.
  • >Hitta var en tjänst, klass eller hjälpfunktion instansieras och återanvänds i repot.
  • >Jämför angränsande implementationer så att agenten redigerar rätt abstraktion istället för den närmaste strängträffen.

Motordetaljer

  • >Dekorerade definitioner behandlas fortfarande som funktioner, så dekorerade vyer och tasks förblir sökbara som symboler.
  • >Metodanrop med `self` och `cls` kvalificeras tillbaka till den omslutande klassen, vilket håller grafen användbar i klasstung tjänstekod.
  • >Import-, anrops- och symbolnormaliserare är aktiverade medan vanligt stdlib-brus som `pathlib.*`, `typing.*` och `logging.*` filtreras bort från relationerna.

Användbara MCP-ingångar

  • intelligent_search

    Börja med en konceptuell fråga som "återförsökslogik kring fakturasynk" och sätt `language_filter="python"` om repot är polyglott.

  • find_symbol

    Använd när du känner till klass- eller funktionsnamnet och behöver definitionen plus referenser innan du redigerar.

  • dependency_search

    Använd inkommande riktning innan du refaktorerar en delad tjänst eller hjälpfunktion för att se vad som beror på den.