| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
cookiecutter-robust-python is a template made with the understanding that project needs change over time.
The Robust Python Cookiecutter aims to provide best practice tooling/CICD within a structure designed for future adaptability. Meaning that important decisions like whether to use maturin may be delayed without breaking the docs, CICD, etc. during transition.
💡 For more information on tools evaluated and why choices were made, please visit our docs on tooling decisions
The only requirement is installing uv.
Besides that, it may be useful to install the following to avoid uvx installing dependencies at unexpected times:
uv tool install nox
uv tool install cruft
uv tool install ruff
uv tool install basedpyright
uv tool install maturin
Navigate to where you want to create your project and run:
uvx cruft create https://github.com/robust-python/cookiecutter-robust-pythonThis will prompt you for a few inputs to customize your project:
[1/15] project_name (robust-python): my-awesome-project [2/15] package_name (my_awesome_project): [3/15] friendly_name (My Awesome Project): ...
After generating your project, set it up for development:
cd my-awesome-project
uvx nox -s setup-venv
uvx nox -s setup-git
gh repo create my-awesome-project
uvx nox -s setup-remote⚠️ Scripts and nox sessions prefixed with "setup-" are usually not idempotent, although some will try to warn you if misused.
From there all that is left is setting up various integrations like Pypi publishing and Readthedocs as desired.
This is a really brief/condensed idea of what is planned for this template, and where it stands currently:
Click to expand| vendor | Demo Statuses |
|---|---|
| github | |
| gitlab | |
| bitbucket |
Unfortunately, the Hypermodern Python Cookiecutter is no longer maintained nor modern. While it will always have a place in my heart, there have been far too many improvements in Python tooling to keep using it as is.
For a while I maintained a personal fork that I would update, however, when it came time to switch to new tooling such as ruff, uv, maturin, etc., I found the process of updating the existing tooling to be extremely painful.
The Hypermodern Python Cookiecutter remains as a fantastic sendoff point for devs interested in building a 2021-style Python Package. However, there were a handful of issues with it that prevented it from being able to adapt to new Python developments over the years.
The goal is for cookiecutter-robust-python to fill the gap that exists for a best practices template that is structured to be adaptable from the start.
For more information on contributing to the Robust Python Cookiecutter, please visit the contributing docs.
| Back | FazBrowse Home | New Git URL |