# Podpora jazyka Python v nástroji Maguyva: AI vyhledávání kódu a refaktoring

Canonical source: https://maguyva.ai/cs/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 podporuje Python díky AST parsování a extrakci symbolů a pomáhá AI agentům sledovat dekorátory, metody self/cls, importy a mezimodulové závislosti ve skutečných repozitářích Pythonu.

## Přehled podpory

- Úroveň: Podpora AST a symbolů
- Programování
- Přípony: .py, .pyi, .pyw
- Skutečné parsování AST pro vyhledávání citlivé na syntaxi a strukturální kontext.
- Pojmenované symboly napájejí sémantické vyhledávání a křížové odkazy. Navigace v grafu je k dispozici, když je povolena extrakce vztahů.
- Tento jazyk přispívá symboly a vztahy do vyhledávání využívajícího graf; podporované typy hran se liší podle jeho nativních konstrukcí.
- K dispozici je parsování AST i extrakce symbolů.

## Nejlépe se hodí pro

- Repozitáře FastAPI, Django, datové platformy nebo interních nástrojů, kde aplikační kód a provozní skripty žijí pohromadě.
- Týmy refaktorující dlouhověké služby v jazyce Python, které už mají dekorátory, background joby a spoustu skryté propojenosti.
- Workflow agentů, které potřebují víc než grep dřív, než změní handler, službu, model nebo helper.

## Workflow agentů

- Vysledovat endpoint, task nebo CLI příkaz přes helpery a sdílené moduly ještě před úpravou.
- Zjistit, kde se služba, třída nebo utility funkce vytváří a znovu používá napříč repozitářem.
- Porovnat sousední implementace, aby agent upravil správnou abstrakci místo nejbližší textové shody.

## Kde repozitáře v Pythonu obvykle prozradí povrchní AI nástroje

Python je místo, kde spousta AI nástrojů pro kód nejdřív vypadá dobře a pak v produkci začne hádat. Obtížné části jsou známé: dekorované vstupní body, servisní třídy, type stuby, malé pomocné moduly všude a metody, které dávají smysl teprve ve chvíli, kdy propojíte `self` nebo `cls` zpátky s třídou, které patří.

U Pythonu skutečná otázka nezní „umí přečíst soubory `.py`?“. Otázka zní, jestli agent dokáže zůstat ukotvený, když přechází od endpointu ke službě, od background tasku k helperu, nebo od názvu třídy k metodám, které chování skutečně implementují.

## Co Maguyva v Pythonu skutečně extrahuje

Maguyva zachází s Pythonem jako s plnohodnotně strukturálním jazykem. Konfigurace pokrývá `.py`, `.pyw` a `.pyi`; mapuje `decorated_definition` zpátky na symbol funkce; a kvalifikuje volání metod `self` / `cls` zpátky k obklopující třídě. Na tom záleží, protože právě tady začínají repozitáře v Pythonu působit člověku samozřejmě a LLM neurčitě.

Zároveň odfiltruje spoustu šumu ze standardní knihovny při extrakci vztahů. To znamená, že běžná runtime volání z modulů jako `pathlib`, `typing` nebo `logging` s menší pravděpodobností přehluší vztahy specifické pro repozitář, na kterých vám skutečně záleží.

## Užitečné workflow MCP pro repozitáře v Pythonu

Nejjednodušší užitečný workflow je:

- Začněte s `intelligent_search` pro otázku na úrovni chování, například „retry logika kolem synchronizace faktur“ nebo „kontroly oprávnění v billing endpointech“.
- Přepněte na `find_symbol`, jakmile znáte název třídy nebo funkce, o kterou vám jde.
- Použijte `dependency_search` s příchozím průchodem dřív, než refaktorujete sdílenou službu, helper nebo základní třídu.

Tento vzor je lepší než žádat agenta, aby „aktualizoval billing flow“ od nuly. Umožňuje agentovi nejdřív si vytvořit mapu a teprve pak měnit kód.

## Kdy je tato stránka užitečná

Tato stránka je pro repozitáře v Pythonu, které už jsou dlouho v provozu a mají určitou složitost: servisní kód, joby, skripty, generované typy a okolní konfigurace. Pokud vaše hlavní srovnání směřuje napříč polyglotními webovými monorepy, přečtěte si i [průvodce jazykem TypeScript](/cs/languages/typescript). Pokud potřebujete jen úplnou matici podpory, použijte [kompatibilitu](/cs/docs/compatibility).

## Podrobnosti enginu

- Dekorované definice se stále považují za funkce, takže dekorované views a tasky zůstávají vyhledatelné jako symboly.
- Volání metod přes `self` a `cls` se kvalifikují zpět k obalující třídě, což pomáhá udržet graf užitečný ve service kódu bohatém na třídy.
- Normalizátory importů, volání a symbolů jsou zapnuté, zatímco běžný šum stdlib jako `pathlib.*`, `typing.*` a `logging.*` je z relací odfiltrován.

## Užitečné vstupní body MCP

- `intelligent_search`: Začněte konceptuálním dotazem jako „retry logika kolem synchronizace faktur“ a u polyglotního repa nastavte `language_filter="python"`.
- `find_symbol`: Použijte ho, když znáte název třídy nebo funkce a potřebujete definici i reference před editací.
- `dependency_search`: Použijte příchozí směr před refaktorováním sdílené služby nebo helperu, abyste viděli, co na něm závisí.
