1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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
- String Types
- ------------
- Like Linux, Git treats filenames as arbitrary bytestrings. There is no prescribed
- encoding for these strings, and although it is fairly common to use UTF-8, anything
- can and is used as encoding with Git.
- For this reason, Dulwich internally treats git-based filenames as bytestrings. It is up
- to the Dulwich API user to encode and decode them if necessary.
- * git-repository related filenames: bytes
- * object sha1 digests (20 bytes long): bytes
- * object sha1 hexdigests (40 bytes long): str (bytestrings on python2, strings on python3)
|