A modern, production-ready Python package template using uv, copier, and just.
- ⚡ uv for fast dependency management and packaging.
- 🛠 just for automated tasks.
- ✨ Ruff for linting and formatting.
- ✅ pytest for testing.
- 🏗 hatchling as the build backend.
- 🛠 Optional Features (via Copier prompts):
- MkDocs documentation setup with Material theme.
- ty for high-performance type checking.
- Python Semantic Release for automated versioning and changelogs.
- GitHub Actions release workflows.
- Typer CLI entry point boilerplate.
To generate a new project from this template, ensure you have uv and copier installed, then run:
uvx copier copy https://github.com/andrader/python-pkg-template.git path/to/your-projectCopier will ask you several questions to customize your project:
- Project Name: The display name of your project.
- Package Name: The Python package name (slugified).
- Description: A short description of the project.
- Author Details: Your name and email.
- Optional Features: Toggle on/off Documentation, Type Checking, Semantic Release, GitHub Workflows, and CLI setup.
After generating the project, follow the CONTRIBUTING.md instructions within the generated folder to set up your development environment:
just setupRun all quality checks:
just qa