This is a highly-opinionated Python app/library scaffolding template. It's a modern upgrade over my previous Pyt2.
- [UV][] for dependency management, Just for task management
- An opionated [Ruff][] set-up for linting
- Black for code formatting
- Strict [Mypy][] for static type checking
- [Sphinx][] for documentation generation
- [Pytest][] + Hypothesis for testing
- [GitHub Actions][] for continuous integration and deployment
- Choice of license between MIT, GPL, and GPL + custom "email me" clause (the last of which only makes sense for libraries)
TODO: custom Molt tool to scaffold??
This template itself is released to the public domain under the Unlicense.
- ⚡ [Uv] and pre-configured 🎶 [Just] for project management
- 🎨 Linters (checked via GitHub Actions
)
- ⚫ Black
- 🐍 MyPy
- ⚡ Ruff (which includes
isort, Pylint, and many, many others...) ⚠️ .pre-commit-config.yamland 🐭.editorconfig
- 🧪 Hypothesis, codecov, and Pytest for testing
Uses GitHub Actions for CI
- ✅ Cached workflows
- 🐍 Tests for Python 3.8+ on 🐧 Linux, 🍎 Mac, and 🏁 Windows.
- 🔖 Automatically generate and upload distribution files on tagged GitHub releases
- 🧀 Publish to PyPi with Trusted Publishers
- (Optional) 😸 Documentation via Sphinx
- 🖨️ Template usage features
- ♻️ Pyt2 uses Copier, therefore Pyt2 has template syncing features
- 🔒 Pre-computed lockfile (
poetry.lock) with up-to-date dependencies via CI ()
- 🔖 Has a
test_version.pywhich will test if the__version__metadata variable in the package is equal to the one in thepyproject.toml - (Optional) 🎬
__main__.pyand[project.scripts]entry point generation (for applications)