# Python-støtte i Maguyva: AI-kodesøk og refaktorering

Canonical source: https://maguyva.ai/nb/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øtter Python med AST-parsing og symbolutvinning, og hjelper AI-agenter med å følge dekoratorer, self/cls-metoder, importer og avhengigheter på tvers av moduler i ekte Python-repositorier.

## Støtteoversikt

- Nivå: AST- og symbolstøtte
- Programmering
- Filendelser: .py, .pyi, .pyw
- Ekte AST-analyse for syntaksbevisst søk og strukturell kontekst.
- Navngitte symboler mater semantisk oppslag og kryssreferanser. Grafnavigasjon er tilgjengelig når relasjonsuttrekk er aktivert.
- Dette språket bidrar med symboler og relasjoner til grafbasert søk; støttede kanttyper varierer med språkets egne konstruksjoner.
- Både AST-analyse og symboluttrekk er tilgjengelige.

## Best egnet

- FastAPI-, Django-, dataplattform- eller interne verktøyrepositorier der applikasjonskode og driftsskript lever sammen.
- Team som refaktorerer langvarige Python-tjenester som allerede har dekoratorer, bakgrunnsjobber og mye underforstått sammenkobling.
- Agentarbeidsflyter som trenger mer enn grep før de endrer en handler, tjeneste, modell eller hjelpefunksjon.

## Agent-arbeidsflyter

- Spor et endepunkt, en oppgave eller en CLI-kommando gjennom hjelpefunksjoner og delte moduler før du redigerer den.
- Finn hvor en tjeneste, klasse eller hjelpefunksjon instansieres og gjenbrukes på tvers av repositoriet.
- Sammenlign nærliggende implementasjoner slik at agenten redigerer riktig abstraksjon i stedet for det nærmeste strengtreffet.

## Hvor Python-repositorier vanligvis avslører overfladiske AI-verktøy

Python er der mye AI-kodeverktøy ser bra ut i starten og deretter begynner å gjette i produksjon. De vanskelige delene er kjente: dekorerte inngangspunkter, tjenesteklasser, typestubber, små hjelpemoduler overalt, og metoder som bare gir mening når du kobler `self` eller `cls` tilbake til klassen de tilhører.

For Python er det egentlige spørsmålet ikke «kan den lese `.py`-filer?» Spørsmålet er om agenten kan holde seg forankret mens den beveger seg fra et endepunkt til en tjeneste, fra en bakgrunnsoppgave til en hjelpefunksjon, eller fra et klassenavn til metodene som faktisk implementerer atferden.

## Hva Maguyva faktisk trekker ut i Python

Maguyva behandler Python som et fullstendig strukturelt språk. Konfigurasjonen dekker `.py`, `.pyw` og `.pyi`, kobler `decorated_definition` tilbake til et funksjonssymbol, og kvalifiserer `self` / `cls`-metodekall med den omsluttende klassen. Det betyr noe fordi det er nøyaktig de stedene der Python-repositorier begynner å føles opplagte for et menneske og uklare for en LLM.

Den filtrerer også bort mye standardbibliotek-støy fra relasjonsutvinningen. Det betyr at vanlige kjøretidskall fra moduler som `pathlib`, `typing` eller `logging` har mindre sannsynlighet for å overdøve de repositoriespesifikke relasjonene du faktisk bryr deg om.

## Nyttige MCP-arbeidsflyter for Python-repositorier

Den enkleste nyttige arbeidsflyten er:

- Start med `intelligent_search` for et atferdsspørsmål som «retry-logikk rundt fakturasynkronisering» eller «tilgangssjekker i faktureringsendepunkter».
- Bytt til `find_symbol` når du kjenner navnet på klassen eller funksjonen du bryr deg om.
- Bruk `dependency_search` med innkommende traversering før du refaktorerer en delt tjeneste, hjelpefunksjon eller basisklasse.

Det mønsteret er bedre enn å be en agent «oppdatere faktureringsflyten» fra en kald start. Det lar agenten bygge et kart først og endre kode etterpå.

## Når denne siden er nyttig

Denne siden er for Python-repositorier som allerede har en viss alder og kompleksitet: tjenestekode, jobber, skript, genererte typer og omkringliggende konfigurasjon. Hvis hovedsammenligningen din er på tvers av flerspråklige web-monorepositorier, les også [TypeScript-guiden](/nb/languages/typescript). Hvis du bare trenger hele støttematrisen, bruk [kompatibilitet](/nb/docs/compatibility).

## Motordetaljer

- Dekorerte definisjoner behandles fortsatt som funksjoner, så dekorerte views og tasks forblir søkbare som symboler.
- Metodekall med `self` og `cls` kvalifiseres tilbake til den omsluttende klassen, noe som hjelper grafen å forbli nyttig i klassetung tjenestekode.
- Normaliserere for import, kall og symboler er aktivert, mens vanlig stdlib-støy som `pathlib.*`, `typing.*` og `logging.*` filtreres bort fra relasjonene.

## Nyttige MCP-inngangspunkter

- `intelligent_search`: Start med et konseptuelt søk som «retry-logikk rundt fakturasynkronisering» og sett `language_filter="python"` hvis repoet er flerspråklig.
- `find_symbol`: Bruk det når du kjenner klasse- eller funksjonsnavnet og trenger definisjonen pluss referanser før du redigerer.
- `dependency_search`: Bruk innkommende retning før du refaktorerer en delt tjeneste eller hjelpefunksjon, for å se hva som er avhengig av den.
