This guide provides an overview of the tooling this project uses and how to execute developer workflows using the developer CLI.
This Python project is tested against different Python versions. For local development, it is a good idea to have those versions installed so that tests can be run against each.
There are libraries that can help with this. Which tools to use is largely a matter of preference, but below are a few recommendations.
For managing multiple Python versions:
OS package manager (e.g. apt, yum, homebrew, etc)
Build from source
For managing Python virtualenvs:
The following tools are used by this project:
Import statement formatter
Test environment manager
CLI task execution library
The following workflows use developer CLI commands via invoke and are defined in
To run all autoformatters:
This is the same as running each autoformatter individually:
To run all linters:
This is the same as running each linter individually:
To run all unit tests:
To run unit tests and builds:
Test on All Supported Python Versions#
To run tests on all supported Python versions:
This requires that the supported versions are available on the PATH.
To build the package:
This will output the source and binary distributions under
To build documentation:
This will output the documentation under
To serve docs over HTTP:
inv docs -s|--server [-b|--bind 127.0.0.1] [-p|--port 8000]
inv docs -s
inv docs -s -p 8080
inv docs -s -b 0.0.0.0 -p 8080
Delete Build Files#
To remove all build and temporary files:
This will remove Python bytecode files, egg files, build output folders, caches, and tox folders.
To release a new version of the package to https://pypi.org:
This project uses Github Actions for CI/CD: