I really love “development tooling”; there’s so many things - from static analysers to formatters to test infrastructure and more - that help me catch problems and potential issues early. I use enough tooling, and create just enough Python projects, to want a convenient reference and starting point.
So I’ve set up a GitHub template repository at https://github.com/doismellburning/python-template/
Features include:
- Pipenv for dependency management
- Dependabot updates for Python dependencies and GitHub Actions
- Dependabot auto-merge for minor and patch-level updates
- Makefile with convenience commands
- Black for code formatting
- structlog for structured logging (thanks Hynek!)
- pytest for testing
- Coverage.py and pytest-cov for measuring code coverage
- Mypy for type checking
- Ruff for linting ALL the things (thanks George for the recommendation)
You almost certainly don’t want to use this yourself - it’s highly opinionated and tailored to me. But it may be an interesting reference - it’s already been a useful place to grab bits from for other ongoing projects I have!