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:
- 📦 Dependency management with uv, including
uv.lock
support - 🔄 Automated updates:
- Dependabot for Python, GitHub Actions, and pre-commit hook versions
- Daily
pre-commit autoupdate
PRs for hook freshness
- 🔧 Code formatting with black and ruff format
- 📈 Coverage reporting with Codecov (optional)
- 📊 Dependency analysis with deptry
- 🦴 Dead code detection with vulture
- 📝 Markdown linting with markdownlint-cli
- 🛠️ Pre-commit hook management with pre-commit
- 🧪 Testing with pytest and pytest-cov
- 🧪 Multi-version testing with tox-uv and GitHub Actions
- 🔐 Security scanning with bandit and pip-audit
- 🧹 Linting with ruff (includes pyflakes, pycodestyle, isort, pyupgrade, tryceratops, and more)
- 🔡 Typo detection with codespell
- 🧠 Static type checking with mypy
- 💻 Optional CLI scaffolding with Click
- 🐍 PyPI publishing via
uv publish
, including TestPyPI flows - 🎞️ Autogenerated terminal demo GIFs using VHS, rebuilt automatically from
demo.tape
- 🏗️ CI-ready with GitHub Actions for testing, linting, building, and publishing (optional)
On your local machine, navigate to the directory in which you want to create a project directory, and run the following command:
uv pip install cruft # highly recommended instead of cookiecutter!
cruft create https://github.com/viseshrp/yapc.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.
To update your project with the latest changes from the template, you can run:
cd <your-project-name>
cruft update
This project is based on the cookiecutter-uv repository.