Skip to content

Bootstrap python service

CI Pipeline Python tests Test Coverage Maintainability

Checked with mypy Ruff Code style: black security: bandit

This is an example implementation of a python application applying concepts from Clean Architecture and SOLID principles.

  • The repository classes are isolated behind interfaces, enforcing the Interface Segregation principle and the Inversion of Control design pattern
  • The application frameworks are decoupled from the domain logic
  • The storage layer is decoupled from the domain logic

This template provides out of the box some commonly used functionalities:

Documentation

The detailed documentation is available:

  • Online on GitHub pages
  • Offline by running make docs after installing dependencies with make dev-dependencies

How to use

Create your GitHub repository using this template (The big green Use this template button). Optionally tweak name and authors in the pyproject.toml file, however the metadata are not used when building the application, nor are referenced anywhere in the code.

Locally:

  • make migrate: Run database migrations
  • make install-dependencies: Install runtime requirements
  • make dev-dependencies: Install development requirements
  • make update-dependencies: Updates requirements
  • make migrate: Run database migrations
  • make dev: Run HTTP application with hot reload
  • make test: Run test suite

Using Docker:

  • make containers: Build containers
  • docker compose run --rm dev make migrate: Run database migrations
  • docker compose up dev: Run HTTP application with hot reload
  • docker compose up celery-worker: Run the celery worker
  • docker compose run --rm test: Run test suite

Other commands for development

  • make check: Run tests, code style and lint checks
  • make fix: Run tests, code style and lint checks with automatic fixes (where possible)