This is a modern, opinionated, cookiecutter template for your next Python project. Included is modern tooling and dependencies with sensible rules and settings. Also included is all the boilerplate documentation and project extras you would need to create good foundation for your next python project.
Make sure you have uv installed before you start.
Create new project:
uvx cookiecutter https://github.com/wyattferguson/cookiecutter-python-uv.git
Then just follow the prompts to get all setup quickly.
Everything comes preconfigured to work out of the box. On setup you can pick and choose what extras to install or to leave behind.
- 📦 UV - Package and project manager
- 🦀 Ruff - Linter and code formatter.
- 🐛 Typechecking with Ty or Mypy.
- 🧪 Pytest - Testing
- 🔭 Coverage - Test coverage.
- 🍧 Nox - Testing in multiple Python environments.
- 🛩️ Taskipy - Task runner for CLI shortcuts.
- 📼 Portray - Doc generation and Github Pages deployment.
- 🪛 GitHub Action to publish package to PyPI.
- 🍹 GitHub Issue Templates for documentation, feature requests, general reports, and bug reports.
- 🌵 Pre-commit - Linting, formatting, and common bug checks on Git commits.
- 🪧 Changelog, Code of Conduct, and Contributing Guide templates.
- 🐋 Docker support including extensive dockerignore file.
- 🍸 VSCode - Settings and extension integrations.
- ⛑️ Dependabot - Dependency scanning for new versions and security alerts.
If this cookiecutter isnt your cup of tea, you might like one of these alternatives.
- Fpgmaas cookiecutter-uv - fpgmaas version of a cookiecutter using UV.
- Bosd uv-hypermodern-python - bosd version of a cookiecutter uv project with github deployments.
- Cookiecutter pypackage - Cookiecutter template for a Python package.
- Neuroinformatics cookiecutter - Utility to create a basic Python project structure with tests, CI etc.
Contributions or suggestions are more then welcome! If you'd like to enhance to this project, please submit a pull request. For major changes, please open an issue first to discuss what you would like to change.
Created by Wyatt Ferguson
For any questions or comments heres how you can reach me:
Follow me on Github @wyattferguson
📬 Email me at wyattxdev@duck.com
🍹 Follow on BlueSky @wyattf
If you find this useful and want to tip me a little coffee money: