* feat: migrate .opencode/ config from opencode * refactor: rename repo refs and sanitize for public * docs(handoff): add pr-7 handoff + ADR-002 * docs(handoff): fix PR number * docs: update project map with .opencode/ structure --------- Co-authored-by: opencode-agent <agent@slaid098.dev>
2 KiB
2 KiB
name: python-development description: Python-специфика: импорты, логирование, обработка ошибок, тесты. Используй вместе с code-standards для Python-проектов.
Python Development
1. Импорты
- Только абсолютные импорты от корня проекта. Относительные (
.и..) запрещены - Все импорты — строго в начале файла, перед любым другим кодом. Импорты внутри функций/методов/условий запрещены
- Группировка: стандартная библиотека → сторонние пакеты → внутренние модули
- Порядок в группе: по алфавиту
2. Запрет global
- Ключевое слово
globalзапрещено. Передача данных — только через аргументы функций и возвращаемые значения
3. Обработка ошибок
- Всегда через
try/except/else. Блокelse— для кода без исключений - Логирование через Loguru:
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 - Цикл исправления: запустил → упало → проанализировал → исправил → перезапустил упавший тест