The codebase has been developed with the following (rough) guidelines in mind:
- Try to keep the codebase PEP 8 compliant. This will pay off when using static code analysis tools like flake8 and pylint that help you catch iffy code before they cause problems.
- Try to maintain good test coverage. Tests are written in pytest and uses fixtures extensively in an effort to keep tests succinct.
- Try to follow Semantic Versioning. In short, using the version format
X.Y.Z
, increment Z when only adding bug fixes, increment Y when adding features in a backwards compatible manner and increment X when making incompatible API changes. - Only support Python 3.6+. Code is written using Python 3.6 features without aiming to support earlier versions such as Python 3.5 or Python 2.7.
- Try to keep documentation up-to-date. Documentation is written in
docs/
using Sphinx.
Finally, these guidelines are not set in stone and you can use good judgment to ignore them when they're more trouble than they're worth.