A cookiecutter template for Python projects with modern tooling and best practices.
- UV for fast dependency management
- Streamlit for dashboards
- Loguru for structured logging
- Ruff for linting and formatting
- Pytest with coverage
- GitHub Actions CI/CD
- Environment management with python-dotenv
- Makefile for common tasks
- Absolute imports (no relative imports)
Cruft allows you to update projects when the template changes:
# Install cruft
pip install cruft
# Create new project
cruft create https://github.com/btjones-me/python-project-template
# Later, update when template improves
cd your-project
cruft update# Install cookiecutter
pip install cookiecutter
# Generate new project
cookiecutter https://github.com/btjones-me/python-project-templatecd your-new-project
make setup
make dashboard{{cookiecutter.project_slug}}/
├── {{cookiecutter.package_name}}/ # Main package
├── tests/ # Test files
├── .env.example # Environment template
├── pyproject.toml # Project configuration
└── Makefile # Development commands
make setup- Initial project setupmake install-dev- Install with dev dependenciesmake test- Run tests with coveragemake lint- Check code qualitymake format- Format codemake dashboard- Start Streamlit dashboardmake clean- Clean build artifacts
- Python 3.12+
- UV package manager