Python project cookie cutter - 2021-08-22

Tags: python study career

Since beginning of COVID I have spent considerable time learning about better practices for python codebase development. I have recently put together a project cookie-cutter intended to help me quick start projects.

The quick start repository can be found here.

The quick-start includes the following features:

  • Full set-up guide and checklist - so you can quickly set up tooling and get into coding
  • Choice of dependency and virtual environment management with full-featured poetry workflow or partial conda workflow - so you can ensure code runs on different environments
  • Pre-populated Git and Github assets including gitignore, codeowners, templates, issue labels - to make your Github experience more enjoyable
  • Documentation including README with prompts, opinionated CONTRIBUTORS guide, LICENSE, sphinx docs generation with markdown and API reference support, and actions to automatically generate Github pages - to easily expose project documentation
  • CI/CD framework including pre-commit for quick formatting, task automation with Nox, and Github Actions - to ensure high quality releases
  • Linting, type checking, and tests with minimum of tool config files and close nox and pyproject.toml integration - to standardize code and minimize clutter
  • Tools for release management including tagging and versioning process, Github actions for release notes, test-pypi and release actions - to simplify the code release process
  • Warmed up project example with logging, imports, pytest, argparse CLI, poetry scripts, docstrings - to template good code practices

The above quick-start has been helpful to use best practices in updating this personal website and restarting a Japanese language app (Otsukare).