Files
TemplateProject/README.md
2026-03-07 01:57:39 +07:00

6.7 KiB
Raw Permalink Blame History

🚀 Python Project Template

Python Docker Pre-commit License

Универсальный шаблон для создания Python-проектов с уже настроенной инфраструктурой разработки, тестирования и контейнеризации.

Этот репозиторий позволяет начать новый проект за несколько минут, не тратя время на настройку инструментов и окружения.

Шаблон задаёт единый стандарт для Python-проектов:

  • одинаковая структура проекта
  • единые инструменты разработки
  • воспроизводимое окружение
  • готовая инфраструктура для запуска и деплоя

📚 Содержание


Быстрый старт

Клонируйте репозиторий:

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 разработки

Типичный рабочий процесс:

  1. создать новую ветку
git checkout -b feature/my-feature
  1. внести изменения

  2. выполнить проверки

pre-commit run --all-files
pytest
  1. сделать коммит
git commit -m "feat: add new feature"
  1. отправить изменения
git push

🚀 Release процесс

Релизы создаются с использованием conventional commits.

История изменений генерируется автоматически:

git cliff

🧩 Для каких проектов подходит

Этот шаблон можно использовать для:

  • backend сервисов
  • API
  • Telegram-ботов
  • CLI инструментов
  • микросервисов
  • автоматизационных сервисов

Он не привязан к конкретному фреймворку и может использоваться как универсальная база для Python-разработки.


🎯 Цель шаблона

Этот репозиторий помогает:

  • ускорить запуск новых проектов
  • стандартизировать структуру кода
  • упростить разработку и деплой
  • внедрить единые инженерные практики

Это фундамент для Python-проектов, который избавляет от повторяющейся настройки инфраструктуры.