# Wsparcie dla języka Python w Maguyva: wyszukiwanie kodu i refaktoryzacja z AI

Canonical source: https://maguyva.ai/pl/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 obsługuje język Python dzięki parsowaniu AST i ekstrakcji symboli, pomagając agentom AI śledzić dekoratory, metody self/cls, importy i zależności między modułami w prawdziwych repozytoriach Python.

## Migawka wsparcia

- Poziom: Obsługa AST i symboli
- Programowanie
- Rozszerzenia: .py, .pyi, .pyw
- Prawdziwe parsowanie AST dla wyszukiwania świadomego składni i kontekstu strukturalnego.
- Nazwane symbole zasilają wyszukiwanie semantyczne i wzajemne odwołania. Nawigacja po grafie jest dostępna po włączeniu ekstrakcji relacji.
- Ten język dostarcza symbole i relacje do wyszukiwania uwzględniającego graf; obsługiwane typy krawędzi zależą od jego rodzimych konstrukcji.
- Dostępne są zarówno parsowanie AST, jak i ekstrakcja symboli.

## Najlepsze dopasowanie

- Repozytoria FastAPI, Django, platform danych lub wewnętrznych narzędzi, w których kod aplikacyjny i skrypty operacyjne współistnieją.
- Zespoły refaktoryzujące długowieczne usługi Python, które mają już dekoratory, zadania w tle i mnóstwo niejawnych powiązań.
- Przepływy pracy agentów, które potrzebują czegoś więcej niż grep, zanim zmienią handler, usługę, model lub funkcję pomocniczą.

## Workflow agentów

- Prześledź endpoint, zadanie lub polecenie CLI przez funkcje pomocnicze i współdzielone moduły, zanim je zedytujesz.
- Znajdź, gdzie usługa, klasa lub funkcja narzędziowa są tworzone i ponownie wykorzystywane w repozytorium.
- Porównaj sąsiednie implementacje, aby agent edytował właściwą abstrakcję, a nie najbliższe dopasowanie tekstowe.

## Gdzie repozytoria Python zwykle łamią płytkie narzędzia AI

Python to miejsce, w którym wiele narzędzi AI do kodowania na początku wygląda dobrze, a potem zaczyna zgadywać na produkcji. Trudne miejsca są znajome: udekorowane punkty wejścia, klasy usług, stuby typów, mnóstwo małych modułów pomocniczych wszędzie oraz metody, które mają sens dopiero po ponownym połączeniu `self` lub `cls` z klasą, do której należą.

Dla Pythona prawdziwym pytaniem nie jest „czy potrafi czytać pliki `.py`?”. Pytaniem jest, czy agent potrafi opierać się na rzeczywistym kodzie, przechodząc od endpointu do usługi, od zadania w tle do funkcji pomocniczej lub od nazwy klasy do metod, które faktycznie implementują zachowanie.

## Co Maguyva faktycznie ekstrahuje w języku Python

Maguyva zapewnia pełną analizę strukturalną języka Python. Konfiguracja obejmuje `.py`, `.pyw` i `.pyi`; mapuje `decorated_definition` z powrotem na symbol funkcji; oraz przypisuje wywołania metod `self` / `cls` do klasy, w której są zdefiniowane. Ma to znaczenie, ponieważ to dokładnie te miejsca, w których repozytoria Python zaczynają wydawać się oczywiste dla człowieka, a rozmyte dla LLM.

Odfiltrowuje też sporo szumu biblioteki standardowej z ekstrakcji relacji. Oznacza to, że popularne wywołania środowiska uruchomieniowego z modułów takich jak `pathlib`, `typing` czy `logging` rzadziej zagłuszają relacje specyficzne dla repozytorium, na których naprawdę Ci zależy.

## Przydatne przepływy pracy MCP dla repozytoriów Python

Najprostszy użyteczny przepływ pracy to:

- Zacznij od `intelligent_search` dla pytania o zachowanie, np. „logika ponawiania wokół synchronizacji faktur” lub „sprawdzanie uprawnień w endpointach rozliczeniowych”.
- Przełącz się na `find_symbol`, gdy znasz już nazwę klasy lub funkcji, która Cię interesuje.
- Użyj `dependency_search` z przechodzeniem po relacjach przychodzących przed refaktoryzacją współdzielonej usługi, funkcji pomocniczej lub klasy bazowej.

Taki wzorzec jest lepszy niż proszenie agenta o „zaktualizowanie przepływu rozliczeń” od zera. Pozwala agentowi najpierw zbudować mapę, a dopiero potem zmienić kod.

## Kiedy ta strona jest przydatna

Ta strona jest dla repozytoriów Python, które mają już pewien wiek i złożoność: kod usług, zadania, skrypty, generowane typy i otaczającą konfigurację. Jeśli Twoje główne porównanie dotyczy wielojęzycznych monorepo webowych, przeczytaj też [przewodnik TypeScript](/pl/languages/typescript). Jeśli potrzebujesz tylko pełnej macierzy wsparcia, skorzystaj z [zgodności](/pl/docs/compatibility).

## Szczegóły silnika

- Dekorowane definicje wciąż są traktowane jak funkcje, więc dekorowane widoki i zadania pozostają wyszukiwalne jako symbole.
- Wywołania metod `self` i `cls` są kwalifikowane nazwą otaczającej klasy, co pomaga grafowi pozostać użytecznym w kodzie usługowym opartym mocno na klasach.
- Normalizatory importów, wywołań i symboli są włączone, podczas gdy typowy szum z biblioteki standardowej, taki jak `pathlib.*`, `typing.*` i `logging.*`, jest odfiltrowywany z relacji.

## Przydatne punkty wejścia MCP

- `intelligent_search`: Zacznij od zapytania koncepcyjnego, na przykład „logika ponawiania wokół synchronizacji faktur”, i ustaw `language_filter="python"`, jeśli repo jest wielojęzyczne.
- `find_symbol`: Użyj, kiedy znasz nazwę klasy albo funkcji i potrzebujesz definicji oraz referencji przed edycją.
- `dependency_search`: Użyj kierunku przychodzącego przed refaktoryzacją współdzielonej usługi albo helpera, żeby zobaczyć, co od niego zależy.
