Cookiecutter template for Python projects using uv featuring:
- Flexible project structure using the src layout
- Python version and Python dependency management with uv
- Code linting and formatting with ruff
- Type checking using ty
- Testing with pytest
- Automated quality assurance with pre-commit
- CICD with GitHub Actions
- Task management using Task
Install cruft via uv: uv tool install cruft
Generate the project structure via uv tool run cruft create https://github.com/slangenbach/cookiecutter-python-uv
|- .devcontainer/ <- devcontainer configuration
|- .github/ <- GitHub Actions workflows
|- .vscode/ <- VSCode configuration
|- data/ <- Data for debugging and testing
|- infra/ <- Infrastructure-as-Code
|- notebooks/ <- Jupyter notebooks
|- src/ <- Source code
|- tests/ <- Tests
|- .gitignore <- Files ignored by git
|- .pre-commit-config.yaml <- pre-commit configuration
|- .env <- Actual .env file
|- .env.example <- Dummy .env file
|- .python-version <- Python version used by package
|- pyproject.toml <- Package and tooling configuration
|- README.md <- Top-level README
|- taskfile.yml <- Taskfile
|- uv.lock <- uv lock file
Update a project created using cruft via uv tool run cruft update
Check out Contributing for further information.