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
- Supports src layout](https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/).
- CI/CD with GitHub Actions
- Pre-commit hooks with pre-commit
- Code quality with ruff, mypy, wemake-python-styleguide, 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
On your local machine, navigate to the directory in which you want to create a project directory, and run the following command:
If cookiecutter is already installed
cookiecutter gh:joeblackwaslike/cookiecutter-uv
If you have uv
installed but not cookiecutter
uvx cookiecutter gh:joeblackwaslike/cookiecutter-uv
or if you don't have uv
installed yet:
pipx install cookiecutter
cookiecutter gh:joeblackwaslike/cookiecutter-uv
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.