A modern, "Zero Friction" and "Full Quality" Cookiecutter template for Python 3.12+ projects. Designed to get you up and running instantly with a production-ready development environment.
Find a file
2026-01-14 22:13:27 +01:00
pytemplate change uv version 2026-01-14 22:13:27 +01:00
.gitignore change precommit and update deployment scripts 2026-01-14 21:31:39 +01:00
README.md add build and deploy + fix lien length to 120 2026-01-14 17:35:56 +01:00

PyTemplate

A modern, "Zero Friction" and "Full Quality" Cookiecutter template for Python 3.12+ projects.

Designed to get you up and running instantly with a production-ready development environment.

🚀 Features

  • Dependency Management: uv (Blazing fast!)
  • Linting & Formatting: Ruff
  • Static Typing: MyPy (Strict mode)
  • Testing: Pytest + coverage
  • Security: Ruff (Bandit rules) + pip-audit (dependency audit)
  • Documentation: Interrogate
  • CI/CD: GitHub Actions workflow included
  • Automation: Taskipy

📦 Usage

You can generate a new project directly from this template directory.

Prerequisites

You need cookiecutter installed. If you are using uv:

uv tool install cookiecutter

Formatting a new project

Run cookiecutter against the template directory (pytemplate):

uvx cookiecutter ./pytemplate

Follow the prompts to configure your project name, author, etc.

🛠️ Generated Project Commands

Once your project is generated, you can use uv directly:

cd <your-project-slug>
uv sync            # Install dependencies
uv run task check  # Run all the following checks
uv run task format # Run formatting
uv run task lint   # Run linting
uv run task audit  # Run security audit
uv run task docs   # Run documentation checks
uv run task test   # Run tests individually
uv run task build  # Build the package
uv run task test-deploy # Upload to TestPyPI
uv run task deploy # Upload to PyPI