A copier template to create a Python package.
# From local repo
copier copy --trust .../copier-py-package .../projects/some-new-pkg
# From GH repo
copier copy --trust gh:level12/copier-py-package .../projects/some-new-pkg
# Then bootstrap...assuming mise activates when changing into pkg directory
cd .../projects/some-new-pkg
mise run bootstrap
NOTE: the method you choose affects the _src
value stored in the copier answers
file and will be used by copier update
. Using a template stored on the local file system will save a _src
that may not be accurate for other users of copier update
.
- pyproject.toml package config
- Hatch build backend w/ support for requirements files
- Ruff linting & formatting
- Enforce single quotes
- Sane(ish) linting rules including safe fixes
- mise
- Manage Python version and local dev virtualenv activation
- Static environment variables
- Other tools when needed (e.g. npm, Terraform)
- Project tasks
- Versioning
- date based by default (
mise run bump --help
) - bumping automatically commits, tags, and (by default) pushes
- date based by default (
- reqs for Python dependencies
- nox (tox alternative)
- pre-commit
- CircleCi config
Todo:
- env-config for environment profiles and 1password integration
- pre-commit
- badges
- review keg-app-cookiecutter
To use a project generated by this template, you will need to have the following tools installed and available on the path:
- mise
- [reqs]((https://github.com/level12/reqs)
TODO