Hypermodern Python Cookiecutter🔗
$ copier gh:eyllanesc/copier-hypermodern-python \ --checkout="2021.11.26"
- Packaging and dependency management with Poetry
- Test automation with Nox
- Linting with pre-commit and Flake8
- Continuous integration with GitHub Actions
- Documentation with mkdocs and Read the Docs using the mkdocs-material theme
- Automated uploads to PyPI and TestPyPI
- Automated release notes with Release Drafter
- Automated dependency updates with Dependabot
- Code formatting with Black and Prettier
- Import sorting with isort
- 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 mkdocs-click
- Manage project labels with GitHub Labeler
The template supports Python 3.7, 3.8, 3.9, and 3.10.
What is this project about?🔗
The mission of this project is to enable current best practices through modern Python tooling.
What makes this project different from other Python templates?🔗
This is a general-purpose template for Python libraries and applications.
Our goals are:
- Focus on simplicity and minimalism
- Promote code quality through automation
- Provide reliable and repeatable processes
The project template is centered around the following tools:
- Poetry for packaging and dependency management
- Nox for automation of checks and other development tasks
- GitHub Actions for continuous integration and delivery
Why is this Python template called "hypermodern"?🔗
Hypermodernism_ is a school of chess that dates back to more than a century ago. If this setup ever goes out of fashion, I can pretend it was my secret plan from the start. All images on the associated blog show past visions of the future.