Итак, вот моё тестовое задание, часть 1:)
Что я добавил от себя:
- использовал новейшую версию питона - 3.13
- сделал авто-тесты на pytest в папке tests (с Dependency Injection) с моковой sqlite
- сделал луковую архитектуру со слоем сервисов, репозиториев
- использовал uv, новейший пакетный менеджер для python, который позволяет очень-очень быстро устанавливать зависимости (мог бы использовать poetry, как это принято, но uv быстрее)
- сделал инверсию зависимости в проекте (простую)
- использовал ruff для форматирования кода
- использовать pyright в режиме стрикт для строгой проверки типизации кода
- API в задаче не работало, я в инете нашёл то, что работало
- сделал красивое логирование через loguru
- сделал middleware для доп. безопасности
- заполнил авто-документацию
Инструкция по запуску через Docker:
- Пишешь в директории с docker-compose.yml
docker compose up --build
- всё работает
Инструкция по развёртыванию через uv: 1)
pip install uv
uv venv venv
source venv/bin/activate
uv pip install -e .
uv pip sync uv.lock
Тесты можно прогонять внутри Docker-контейнера, можно прогонять локально, если развернуть всё локально.