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

Canonical source: https://maguyva.ai/sv/languages/python

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

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.

## Stödöversikt

- Nivå: Stöd för AST och symboler
- Programmering
- Filändelser: .py, .pyi, .pyw
- Riktig AST-parsning för syntaxmedveten sökning och strukturell kontext.
- Namngivna symboler driver semantisk uppslagning och korsreferenser. Grafnavigering är tillgänglig när relationsextraktion är aktiverad.
- Det här språket bidrar med symboler och relationer till grafmedveten sökning; vilka kanttyper som stöds varierar med språkets inbyggda konstruktioner.
- Både AST-parsning och symbolextraktion är tillgängliga.

## 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, en uppgift 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.

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

Python är där många AI-verktyg för kod 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 behålla förankringen medan den rör sig från en endpoint till en tjänst, från en bakgrundsuppgift 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` löper mindre risk 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 namnet på klassen eller funktionen du är intresserad av.
- 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 du främst jämför webbmonorepon med flera språk, läs [TypeScript-guiden](/sv/languages/typescript) också. Om du bara behöver den fullständiga stödmatrisen, använd [kompatibilitet](/sv/docs/compatibility).

## 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.
