- GitHub repo: https://github.com/cs01/cookiecutter-pypackage/
- nox: Project automation and testing for multiple Python environments. Comes with a noxfile that runs tests, lint, builds and publishes the package to PyPI
- pytest: The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.
- Coverage: Built-in coverage metrics and optional minimum thresholds
- Travis-CI: Ready for Travis Continuous Integration testing
- mypy: Typing enabled, with PEP 561 support so your typing extends to consumers of your package
- black: Code is autoformatted with
black
- flake8 and flake8 bugbear: flake8 is configured to not complain about things the black autoformatter does in violation of flake8
- As much linting as possible to prevent footguns: Checks performed on MANIFEST.in, setup.py
- src dir: Directory structure uses
src
directory to ensure no accidental installations. Read why CPython core dev prefers it here.
Made with Cookiecutter, so you can modify and fork this template easily.
Generate the project with pipx:
pipx run cookiecutter https://github.com/cs01/cookiecutter-pypackage/
See audreyr/cookiecutter-pypackage for the original template, as well as other popular templates.