All functionality should be available in pure Python. Optional C
implementations may be written for performance reasons, but should never
replace the Python implementation. The C implementations should follow the
kernel/git coding style.

Where possible include updates to NEWS along with your improvements.

New functionality and bug fixes should be accompanied with matching unit tests.

Coding style
------------
Where possible, please follow PEP8 with regard to coding style.

Furthermore, triple-quotes should always be """, single quotes are ' unless
using " would result in less escaping within the string.

Public methods, functions and classes should all have doc strings. Please use
epydoc style docstrings to document parameters and return values.
You can generate the documentation by running "make doc".

Running the tests
-----------------
To run the testsuite, you should be able to simply run "make check". This
will run the tests using unittest on Python 2.7 and higher, and using
unittest2 (which you will need to have installed) on older versions of Python.

 $ make check
