All contributions to this repository are welcome via pull request on the github repository.

The project follows the following guidelines:

  1. Use the base Python library unless completely necessary. A few external libraries (such as numpy) have been included in requirements.txt – feel free to use these as needed.
  2. Try as best as possible to follow PEP8 which includes using descriptive variable names.
  3. Code Format: Use the Black formatter to format
    all code and the isort utility to sort import statements.
  4. Commits: Please try to use commit messages that give a meaningful history for anyone using git’s log features. Try to use messages that complete sentence, “This commit will…” There is some excellent guidance on the subject from Chris Beams
  5. Testing: the project uses the unittest library and has a nice testing suite that makes some things very easy to write tests for. Please try to increase the test coverage on pull requests.
  6. Merging pull-requests: We require two of the (currently three) core-team maintainers to merge. Opening a PR for early feedback or to check test coverage is OK, just indicate that the PR is not ready to merge (and update when it is).

By submitting a pull request, you are agreeing that your work may be distributed under the terms of the project’s licence and you will become one of the project’s joint copyright holders.