Cookiecutter template for a Python package based on the Hypermodern Python article series. Original version at here.
About this fork: This is my first venture into Cookiecutter, so tread carefully -- many parts are untested. While incomplete and under-documented, this may be useful for the experienced cookiecutter-er (ahem). This fork aims to integrate some different tooling choices over Hypermodern Python and be reasonably opinionated:
- pdm instead of Poetry
- ruff instead of various linters which ruff has since absorbed (This work was primarily done by dbatten5. Thank you!).
Also note that while Hypermodern Python is geared towards Click apps, my original focus is libraries. I also assume vscode integration which is automatically configured for new projects.
cookiecutter gh:dmcc/cookiecutter-hypermodern-python(note: may be outdated -- ruff reimplements some of these tools)
- Packaging and dependency management with pdm
- Test automation with Nox
- Linting with pre-commit and ruff
- Continuous integration with GitHub Actions
- Documentation with Sphinx, MyST, and Read the Docs using the furo theme
- Automated uploads to PyPI and TestPyPI
- Automated release notes with Release Drafter
- Automated dependency updates with Dependabot
- Code formatting with Black and Prettier
- Testing with pytest
- Code coverage with Coverage.py
- Coverage reporting with Codecov
- Command-line interface with Click
- Static type-checking with mypy
- Runtime type-checking with Typeguard
- Automated Python syntax upgrades with pyupgrade
- Security audit with Bandit and Safety
- Check documentation examples with xdoctest
- Generate API documentation with autodoc and napoleon
- Generate command-line reference with sphinx-click
- Manage project labels with GitHub Labeler
The template supports Python 3.10.
