🚀 Python Project Template
Универсальный шаблон для создания Python-проектов с уже настроенной инфраструктурой разработки, тестирования и контейнеризации.
Этот репозиторий позволяет начать новый проект за несколько минут, не тратя время на настройку инструментов и окружения.
Шаблон задаёт единый стандарт для Python-проектов:
- одинаковая структура проекта
- единые инструменты разработки
- воспроизводимое окружение
- готовая инфраструктура для запуска и деплоя
📚 Содержание
- Быстрый старт
- Что входит в шаблон
- Структура проекта
- Docker
- Контроль качества кода
- Тестирование
- Миграции базы данных
- Локализация
- Changelog
- Workflow разработки
- Release процесс
- Для каких проектов подходит
⚡ Быстрый старт
Клонируйте репозиторий:
git clone <repository>
cd project
Установите зависимости:
uv sync
Запустите приложение:
python main.py
🐳 Docker
Собрать и запустить контейнер:
docker compose up --build
Docker-конфигурация включает:
- production-ready
Dockerfile - multi-stage сборку
- оптимизацию размера образа
- запуск контейнера без root
- healthcheck контейнера
✨ Что входит в шаблон
В репозитории уже настроены основные инструменты разработки.
Контейнеризация
- Docker
- Docker Compose
- оптимизированная сборка контейнера
Проверка кода
- Ruff — линтер и автоформатирование
- mypy — статическая типизация
- bandit — анализ безопасности
- detect-secrets — обнаружение секретов
Автоматические проверки
- pre-commit
- проверки YAML и JSON
- контроль merge конфликтов
- обнаружение больших файлов
🧹 Контроль качества кода
Перед каждым коммитом автоматически запускаются проверки:
- линтинг
- проверка типов
- анализ безопасности
- поиск секретов
- базовые проверки репозитория
Установка pre-commit:
pre-commit install
🧪 Тестирование
В проекте используется pytest.
Особенности:
- строгая конфигурация
- поддержка asyncio
- контроль предупреждений
- удобный вывод ошибок
Тесты располагаются в каталоге:
tests/
Запуск тестов:
pytest
🗄 Миграции базы данных
В проекте настроен Alembic.
Он используется для:
- управления миграциями базы данных
- отслеживания изменений схемы
- безопасного обновления структуры БД
🌍 Локализация
Настроен Babel для поддержки переводов и интернационализации.
Это позволяет легко реализовать многоязычные приложения.
📜 Changelog
Используется git-cliff для автоматической генерации CHANGELOG.
Changelog формируется на основе conventional commits.
📁 Структура проекта
Рекомендуемая структура:
project/
│
├ src/
│ └ app/
│ └ main.py
│
├ tests/
│
├ migrations/
│
├ Dockerfile
├ docker-compose.yml
│
├ pyproject.toml
├ pytest.ini
│
└ README.md
🔧 Workflow разработки
Типичный рабочий процесс:
- создать новую ветку
git checkout -b feature/my-feature
-
внести изменения
-
выполнить проверки
pre-commit run --all-files
pytest
- сделать коммит
git commit -m "feat: add new feature"
- отправить изменения
git push
🚀 Release процесс
Релизы создаются с использованием conventional commits.
История изменений генерируется автоматически:
git cliff
🧩 Для каких проектов подходит
Этот шаблон можно использовать для:
- backend сервисов
- API
- Telegram-ботов
- CLI инструментов
- микросервисов
- автоматизационных сервисов
Он не привязан к конкретному фреймворку и может использоваться как универсальная база для Python-разработки.
🎯 Цель шаблона
Этот репозиторий помогает:
- ускорить запуск новых проектов
- стандартизировать структуру кода
- упростить разработку и деплой
- внедрить единые инженерные практики
Это фундамент для Python-проектов, который избавляет от повторяющейся настройки инфраструктуры.