A copier template to create a Python package.
Getting Started & other docs are in the GH Wiki.
Copier, the project Coppy is built on, enables code lifecycle management for generated projects. That means, it's much easier to keep your project in-sync with the upstream template even when you have made changes to the template files post-generation.
Before updating your Coppy based project, check the Changelog for breaking changes. We'll do our best to keep them relatively minor and provide clear instructions when manual invervention is needed.
pyproject.toml
package config- Hatch build backend
- uv project for dependencies, etc.
- Ruff linting & formatting
- Enforce single quotes
- Sane(ish) linting rules including safe fixes
- mise
- Manage Python version
- Local dev virtualenv activation
- Static environment variables
- Other tools when needed (e.g. npm, Terraform)
- Project tasks
- Versioning
- Date based by default (
mise bump --help
) - Bumping automatically commits, tags, and (by default) pushes
- Date based by default (
- Testing
- Nox (tox alternative) test runner
pytest
with integrated code coverage
- pre-commit & pre-commit-uv for speed
- CI: GitHub Actions & CircleCi integration using nox