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:
- uv 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 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-uv
- Containerization with Docker
- Development environment with VSCode devcontainers
Disclaimer: This was forked from fpgmaas/cookiecutter-uv with the intention of expanding on the template with more specific configurations that I like to apply to my own projects. This does not make sense to merge to the original repository because it would make the template too restrictive. The changes can be found in the main-plus
branch.
On your local machine, navigate to the directory in which you want to create a project directory, and run the following command:
uvx cookiecutter https://github.com/mikeweltevrede/cookiecutter-uv-plus.git
or if you don't have uv
installed yet:
pip install cookiecutter
cookiecutter https://github.com/mikeweltevrede/cookiecutter-uv-plus.git
Follow the prompts to configure your project. Once completed, a new directory containing your project will be created. Then navigate into your newly created project directory and follow the instructions in the README.md
to complete the setup of your project.
This project is partially based on Audrey Feldroy's's great cookiecutter-pypackage repository.
This project is forked from fpgmaas/cookiecutter-uv with the intention of expanding on the template with more specific configurations that I like to apply to my own projects. This does not make sense to merge to the original repository because it would make the template too restrictive. The changes can be found in the main-plus
branch.