This is a modern Cookiecutter template that can be used to initiate a Python project with all the necessary tools for development, testing, and deployment. It supports the following features:
- Poetry for dependency management
- CI/CD with GitHub Actions
- Pre-commit hooks with pre-commit
- Code quality with ruff, mypy, deptry and prettier
- Publishing to Pypi or Artifactory by creating a new release on GitHub
- Testing and coverage with pytest and codecov
- Documentation with MkDocs
- Compatibility testing for multiple versions of Python with Tox
- Containerization with Docker
- Development environment with VSCode devcontainers
An example of a repository generated with this package can be found here.
On your local machine, navigate to the directory in which you want to create a project directory, and run the following two commands:
pip install cookiecutter-poetry
cookiecutter and directly pass the URL to this
Github repository to the
pip install cookiecutter
Create a repository on GitHub, and then run the following commands, replacing
<project-name>, with the name that you gave the Github repository and
<github_author_handle> with your Github username.
git init -b main
git add .
git commit -m "Init commit"
git remote add origin firstname.lastname@example.org:<github_author_handle>/<project_name>.git
git push -u origin main
Finally, install the environment and the pre-commit hooks with
You are now ready to start development on your project! The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.