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:
|isort||Import statement formatter||
|tox||Test environment manager||
|invoke||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:
inv black inv isort inv docformatter
To run all linters:
This is the same as running each linter individually:
inv flake8 inv pylint
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.