opencode-config/.opencode/skills/python-development/SKILL.md
Sergey a8f9aa0bc6
feat: migrate .opencode/ config from opencode (#23)
* 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>
2026-07-23 22:57:39 +03:00

2 KiB
Raw Permalink Blame History


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
  • Цикл исправления: запустил → упало → проанализировал → исправил → перезапустил упавший тест