
Разработка на Python
Создавайте Python-скрипты, сервисы FastAPI и тестовые наборы с современными инструментами — uv, PEP 723 и лучшие практики pytest
Установить
Выполните эту команду, чтобы установить все навыки в этом плагине:
npx skillstore add @python-development CLI автоматически обнаруживает папки Codex и Claude Code и устанавливает в обе, когда они доступны.
Обзор
Руководство по использованию
Улучшено с помощью ИИПодробное руководство
# Разработка на Python
Создавайте Python-скрипты, сервисы FastAPI и тестовые наборы с современными инструментами — uv, PEP 723 и лучшие практики pytest.
10 минут, чтобы запустить сервис FastAPI с тестами.
## Возможности плагина
Три навыка, охватывающих полный процесс бэкенд-разработки на Python:
| Навык | Назначение |
|-------|---------|
| **Python Scripting** | Автономные скрипты с использованием uv и встроенных зависимостей PEP 723 — не требуется настройка virtualenv |
| **FastAPI Mastery** | Создание REST API с маршрутизацией, валидацией запросов, middleware, аутентификацией и интеграцией с базой данных |
| **pytest Mastery** | Тестовые наборы с fixtures, parametrize, mocking, асинхронным тестированием и покрытием |
## Полный пример: создание API для сокращения ссылок с тестами
### Шаг 1: Создание каркаса сервиса FastAPI
```
Create a FastAPI URL shortener service with:
- POST /shorten — accepts {"url": "https://..."}, returns {"short_code": "abc123", "short_url": "http://localhost:8000/abc123"}
- GET /{short_code} — redirects to original URL
- GET /stats/{short_code} — returns click count
- Use SQLite via SQLAlchemy for storage
- Add input validation: reject invalid URLs, max URL length 2048
- Include proper error responses (404 for unknown codes, 422 for invalid input)
```
### Шаг 2: Добавление комплексных тестов
```
Write pytest tests for the URL shortener:
- Test POST /shorten with valid URL returns 201 + short_code
- Test POST /shorten with invalid URL returns 422
- Test GET /{short_code} redirects correctly (status 307)
- Test GET /{short_code} with unknown code returns 404
- Test GET /stats/{short_code} returns correct click count after multiple visits
- Use httpx AsyncClient as test client
- Use a separate test database (SQLite in-memory)
- Add fixtures for: app client, sample shortened URL, database setup/teardown
```
### Шаг 3: Добавление служебного скрипта
```
Create a Python script with PEP 723 inline dependencies that:
- Reads a CSV file of URLs (one per line)
- Calls the /shorten endpoint for each URL
- Outputs a new CSV with original_url, short_url, short_code columns
- Use uv for dependency management (httpx, csv are dependencies)
- Add retry logic for failed requests
- Include a --dry-run flag that validates URLs without shortening
```
**Результат:** Полный, протестированный API-сервис + пакетный служебный скрипт — всё создано на основе естественных языковых запросов, готово к развёртыванию.
## Требования к окружению
- **Python 3.10+** (рекомендуется 3.12)
- **Менеджер пакетов uv** для быстрого разрешения зависимостей:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
- Для проектов FastAPI зависимости управляются через `pyproject.toml` или `requirements.txt`
- Для автономных скриптов встроенные метаданные PEP 723 позволяют объявлять зависимости непосредственно в файле скрипта — отдельная конфигурация не требуется
### Быстрая проверка
```bash
python3 --version # 3.10+
uv --version # любая недавняя версия
```
## Обработка ошибок
### uv не установлен
```
command not found: uv
```
**Исправление:** Установите uv: `curl -LsSf https://astral.sh/uv/install.sh | sh`
Альтернативно, используйте pip: `pip install -r requirements.txt`
### Ошибки импорта в тестах
```
ModuleNotFoundError: No module named 'httpx'
```
**Исправление:** Установите зависимости для тестов: `uv pip install httpx pytest pytest-asyncio`
### Сервер FastAPI не запускается
Распространённые причины:
- Порт уже занят: `uvicorn app:app --port 8001`
- Отсутствующие зависимости: `uv pip install fastapi uvicorn sqlalchemy`
- Слишком старая версия Python: обновите до 3.10+
### pytest fixtures не найдены
Если тесты fail с ошибкой `fixture not found`, убедитесь:
- `conftest.py` находится в тестовой директории
- Функции fixtures декорированы `@pytest.fixture`
- Асинхронные fixtures используют `@pytest_asyncio.fixture`Навыки
3python-scripting
Средний риск 72Создание переносимых Python-скриптов с uv
Автономным Python-утилитам часто нужны воспроизводимые зависимости и понятное поведение в командной строке. Этот навык помогает Claude, Codex и Claude Code создавать черновики скриптов на основе uv с метаданными PEP 723.
fastapi-mastery
Средний риск 69Создавайте API на FastAPI с помощью проверенных шаблонов
Проектам FastAPI нужны единообразные шаблоны для маршрутизации, валидации, безопасности, доступа к данным и развертывания. Этот навык дает Claude, Codex и Claude Code структурированные рекомендации по созданию и улучшению сервисов FastAPI.
pytest-mastery
Низкий риск 79Создание надежных наборов тестов Pytest
Командам Python нужны воспроизводимые тесты, которые легко запускать, отлаживать и расширять. Этот навык дает практические рекомендации по pytest и uv для модульных тестов, покрытия, fixtures и паттернов тестирования FastAPI.
Похожие плагины

Набор инструментов для контейнеров Docker
Контейнеризация Docker от начала до конца — аудит Dockerfiles, оркестрация сборок нескольких сервисов и развёртывание в Kubernetes. Один набор инструментов для вашего рабочего процесса контейнеризации.
3 навыки

Postgres Schema Toolkit
Покрывает проектирование схемы, составление запросов и настройку SQL для реляционных баз данных. Лучше всего подходит для агентов, работающих над ресурсоёмкими функциями, требующими чистого моделирования и быстрого доступа.
3 навыки

Инструменты Claude Code
Добавьте хуки, автономные запуски и интеграции MCP, чтобы превратить Claude Code в программируемый движок рабочих процессов
3 навыки