# Управление зависимостями --- ## Формат **Рекомендуемый:** `requirements.txt` ``` # === Core === fastapi==0.115.6 uvicorn[standard]==0.34.0 pydantic==2.10.3 pydantic-settings==2.7.0 # === Database === sqlalchemy[asyncio]==2.0.36 aiosqlite==0.20.0 # dev (SQLite) asyncpg==0.30.0 # prod (PostgreSQL) alembic==1.14.1 # === Auth === python-jose[cryptography]==3.3.0 passlib[bcrypt]==1.7.4 # === AI === httpx==0.28.1 pyyaml==6.0.2 # === Tasks (опционально) === celery==5.4.0 redis==5.2.1 # === Dev === pytest==8.3.4 pytest-asyncio==0.24.0 ruff==0.8.4 ``` --- ## Правила обновления | Тип | Когда | Проверка | |-----|-------|----------| | **patch** | В любой момент (bugfix, security) | CI passes | | **minor** | Не чаще 1 раза в спринт | Full regression | | **major** | Только с полным регрессом | + migration guide | --- ## Аудит зависимостей Периодически проверять уязвимости: ```bash pip-audit safety check ``` --- ## [ASK] Вопросы по зависимостям - `requirements.txt` или `pyproject.toml`? (pyproject.toml — современный стандарт) - `pip` или `poetry`/`uv`? (uv — быстрее, poetry — управление зависимостями) - Нужна ли заморозка версий (`pip freeze > requirements-lock.txt`)? (да, для production)