# Підтримка Python у Maguyva: ШІ-пошук коду та рефакторинг

Canonical source: https://maguyva.ai/uk/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 підтримує Python з розбором AST та вилученням символів, допомагаючи ШІ-агентам простежувати декоратори, методи self/cls, імпорти та міжмодульні залежності в реальних репозиторіях Python.

## Знімок підтримки

- Рівень: Підтримка AST і символів
- Програмування
- Розширення: .py, .pyi, .pyw
- Справжній розбір AST для пошуку з урахуванням синтаксису та структурного контексту.
- Іменовані символи забезпечують семантичний пошук і перехресні посилання. Навігація графом доступна, коли ввімкнено видобування зв’язків.
- Ця мова додає символи та зв’язки до пошуку з урахуванням графа; підтримувані типи ребер залежать від притаманних їй конструкцій.
- Доступні як розбір AST, так і видобування символів.

## Найкраще підходить

- Репозиторії FastAPI, Django, дата-платформ чи внутрішніх інструментів, де код застосунку та операційні скрипти співіснують.
- Команди, що рефакторять довгоживучі сервіси на Python, які вже мають декоратори, фонові задачі та багато неявних зв'язків.
- Робочі процеси агентів, яким потрібно більше, ніж grep, перед зміною обробника, сервісу, моделі чи хелпера.

## Робочі процеси агента

- Простежити ендпоінт, задачу чи CLI-команду через хелпери та спільні модулі перед її редагуванням.
- Знайти, де сервіс, клас чи допоміжна функція створюється та повторно використовується в репозиторії.
- Порівняти суміжні реалізації, щоб агент редагував правильну абстракцію, а не найближчий текстовий збіг.

## Де репозиторії Python зазвичай ламають поверхові ШІ-інструменти

Python — те місце, де багато ШІ-інструментів для програмування спершу виглядають добре, а потім починають вгадувати в продакшні. Складні частини знайомі: декоровані точки входу, класи сервісів, файли типів (stub), маленькі допоміжні модулі всюди та методи, які мають сенс лише тоді, коли ви знову зв'яжете `self` чи `cls` із класом, якому вони належать.

Для Python справжнє питання не «чи вміє він читати файли `.py`?». Питання в тому, чи здатен агент спиратися на реальний код, переходячи від ендпоінту до сервісу, від фонової задачі до хелпера, чи від назви класу до методів, які насправді реалізують поведінку.

## Що Maguyva насправді вилучає в Python

Maguyva забезпечує повноцінну підтримку структурного аналізу Python. Конфігурація охоплює `.py`, `.pyw` та `.pyi`; відображає `decorated_definition` назад на символ функції; та доповнює виклики методів `self` / `cls` назвою класу, якому вони належать. Це важливо, бо саме в цих місцях репозиторії Python починають здаватися очевидними людині й розмитими для LLM.

Він також відфільтровує чимало шуму стандартної бібліотеки з вилучення зв'язків. Це означає, що поширені виклики середовища виконання з модулів на кшталт `pathlib`, `typing` чи `logging` рідше заглушують специфічні для репозиторію зв'язки, які вас насправді цікавлять.

## Корисні робочі процеси MCP для репозиторіїв Python

Найпростіший корисний робочий процес:

- Почніть з `intelligent_search` для запитання про поведінку, наприклад «логіка повторних спроб навколо синхронізації рахунків» або «перевірки прав доступу в ендпоінтах білінгу».
- Перемкніться на `find_symbol`, щойно ви знаєте назву класу чи функції, яка вас цікавить.
- Використовуйте `dependency_search` зі вхідним обходом перед рефакторингом спільного сервісу, хелпера чи базового класу.

Цей патерн кращий, ніж просити агента «оновити потік білінгу» з холодного старту. Він дозволяє агенту спочатку побудувати карту, а вже потім змінювати код.

## Коли ця сторінка корисна

Ця сторінка для репозиторіїв Python, які вже мають певний вік і складність: сервісний код, задачі, скрипти, згенеровані типи та навколишню конфігурацію. Якщо ваше основне порівняння — поліглотні веб-монорепозиторії, прочитайте також [посібник з TypeScript](/uk/languages/typescript). Якщо вам потрібна лише повна таблиця підтримки, скористайтеся сторінкою [сумісності](/uk/docs/compatibility).

## Деталі рушія

- Декоровані визначення все одно трактуються як функції, тож декоровані views і задачі залишаються доступними для пошуку як символи.
- Виклики методів `self` і `cls` доповнюються назвою класу, якому вони належать, що допомагає графу залишатися корисним у сервісному коді з великою кількістю класів.
- Нормалізатори імпортів, викликів і символів увімкнені, тоді як типовий шум stdlib на кшталт `pathlib.*`, `typing.*` та `logging.*` відфільтровується зі зв'язків.

## Корисні точки входу MCP

- `intelligent_search`: Почніть із концептуального запиту на кшталт «логіка повторних спроб довкола синхронізації рахунків» і встановіть `language_filter="python"`, якщо репозиторій поліглотний.
- `find_symbol`: Використовуйте, коли знаєте назву класу чи функції і потребуєте визначення разом із посиланнями перед редагуванням.
- `dependency_search`: Використовуйте напрямок «вхідні» перед рефакторингом спільного сервісу чи хелпера, щоб побачити, що від нього залежить.
