Contribution

Contributors are highly welcome on all levels such as new features, improvements, bug fixes, and documentation. Please read this guide carefully to hold a certain standard in code quality.

Code style

We follow the PEP 8 – Style Guide for Python Code.

Code documentation

Please document your code. Each package, module, class, and function should have a comment. We use Google style docstrings, and you can find a great example here. For major changes, it might also be good to update the documentation you are currently reading. It is generated with Sphinx, and you can find the source files in the ./docs directory.

Code tests

You do write tests, don’t you? They are located in the ./test directory.

Commit messages

The commit messages follow the AngularJS Git Commit Message Conventions format:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

Usually the first line is enough, i.e. <type>(<scope>): <subject> . It contains a succinct description of the change. Allowed <type> s are:

  • feat: feature

  • fix: bug fix

  • docs: documentation

  • style: formatting, missing semi colons, …

  • refactor

  • test: when adding tests

  • chore: maintain

An example would be: feat(metric): add Dice coefficient metric

TODOs

Mark todos like this:

# TODO(<name>): improve performance by vectorization

Where <name> should be replaced by your GitHub name.