opencode-config/.opencode/skills/python-development/SKILL.md
2026-07-29 05:14:28 +03:00

33 lines
2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: python-development
description: Python-specific standards: imports, logging, error handling, tests. Use alongside code-standards for Python projects. Also when user says "python", "питон", "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`
- Цикл исправления: запустил → упало → проанализировал → исправил → перезапустил упавший тест