# python-best-practices

Задаёт архитектурные стандарты для бэкенда на FastAPI и Pydantic v2. Помогает писать чистый асинхронный код и выдерживать границы слоёв.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 109
- Автор: c0x12c
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/c0x12c/ai-toolkit/tree/HEAD/toolkit/skills/python-best-practices/SKILL.md
- Обновлён: 2026-06-18
- HTML: https://affpapa.org/nevibecode/skills/c0x12c-python-best-practices

## Что делает

Скилл инструктирует ассистента строго делить проект по уровням: роутер обращается только к сервису, а сервис работает с репозиторием. Каждый слой взаимодействует только с тем, что находится прямо под ним. Сетевые запросы наружу отправляются через `httpx.AsyncClient`. Логику запуска и завершения приложения переключают на контекстный менеджер lifespan взамен устаревшего `on_event`.

В схемах Pydantic v2 требуется явно указывать `from_attributes=True`, иначе модели ORM тихо перестанут сериализоваться в ответы. Для полей со сложными дефолтными значениями предписан `default_factory`. В моделях SQLAlchemy 2.0 вместо устаревшего `Column` используются аннотации `Mapped` вместе с `mapped_column`, сохраняя автодополнение в редакторе.

Особое внимание уделено асинхронности. Синхронные блокирующие вызовы внутри `async def` намертво подвешивают весь event loop. Поэтому под ресурсоёмкие вычисления скилл требует объявлять обычные функции `def`, которые FastAPI уводит в отдельный пул потоков.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add c0x12c/ai-toolkit --skill python-best-practices -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/python-best-practices/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/python-best-practices/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add c0x12c/ai-toolkit --skill python-best-practices -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/python-best-practices/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add c0x12c/ai-toolkit --skill python-best-practices -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/python-best-practices/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install c0x12c/ai-toolkit python-best-practices
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/python-best-practices/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add c0x12c/ai-toolkit --skill python-best-practices -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/c0x12c/ai-toolkit --path toolkit/skills/python-best-practices
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/python-best-practices/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add c0x12c/ai-toolkit --skill python-best-practices -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/c0x12c/ai-toolkit/tree/HEAD/toolkit/skills/python-best-practices/SKILL.md

## Когда брать
- Разделить логику приложения между роутерами, сервисами и репозиториями
- Перевести схемы данных со старого orm_mode на Pydantic v2
- Настроить мягкое удаление записей через SoftDeleteMixin
- Заменить устаревший datetime.utcnow() на timezone-aware datetime.now(UTC)
- Устранить блокирующие вызовы внутри асинхронных эндпоинтов

## Примеры запросов агенту
- Проверь роуты в `app/api/v1` на блокирующие вызовы внутри async def
- Перепиши модели в `app/models/user.py` на синтаксис SQLAlchemy 2.0 с Mapped
- Сделай схему пагинации через PaginatedResponse для эндпоинта списка заказов

## Похожие
- [mcp-builder](https://affpapa.org/nevibecode/skills/mcp-builder.md) — скилл · 130949 установок
- [claude-api](https://affpapa.org/nevibecode/skills/claude-api.md) — скилл · 74198 установок
- [lark-im](https://affpapa.org/nevibecode/skills/lark-im.md) — скилл · 472900 установок
- [lark-event](https://affpapa.org/nevibecode/skills/lark-event.md) — скилл · 466800 установок
- [caveman-discover](https://affpapa.org/nevibecode/skills/caveman-discover.md) — скилл · 104400 установок
- [migration](https://affpapa.org/nevibecode/skills/migration.md) — скилл · 103900 установок

## Другие версии с тем же именем
- [python-best-practices · nathan-gage](https://affpapa.org/nevibecode/skills/python-best-practices.md) — 855 установок

Из того же набора: [c0x12c/ai-toolkit](https://affpapa.org/nevibecode/by/c0x12c/ai-toolkit.md) — 33 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
