--- name: python-development description: Python-специфика: импорты, логирование, обработка ошибок, тесты. Используй вместе с code-standards для Python-проектов. --- # Python Development ## 1. Импорты - Только **абсолютные импорты** от корня проекта. Относительные (`.` и `..`) **запрещены** - Все импорты — строго в начале файла, перед любым другим кодом. Импорты внутри функций/методов/условий **запрещены** - Группировка: стандартная библиотека → сторонние пакеты → внутренние модули - Порядок в группе: по алфавиту ## 2. Запрет global - Ключевое слово **`global`** запрещено. Передача данных — только через аргументы функций и возвращаемые значения ## 3. Обработка ошибок - Всегда через `try/except/else`. Блок `else` — для кода без исключений - Логирование через **Loguru**: ```python from loguru import logger try: # логика except Exception as ex: logger.bind(error=ex, error_type=type(ex).__name__).error("Понятное описание контекста ошибки") ``` ## 4. Тестирование - Запуск: `uv run pytest` - В проекте настроено `asyncio_mode = "auto"`. **Не пиши** `@pytest.mark.asyncio` вручную - При правке конкретного файла запускай только связанные тесты: `uv run pytest tests/path_to_test.py` - Цикл исправления: запустил → упало → проанализировал → исправил → перезапустил упавший тест