Skip to content

Instantly share code, notes, and snippets.

@cholin
Created March 29, 2013 13:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save cholin/5270970 to your computer and use it in GitHub Desktop.
Save cholin/5270970 to your computer and use it in GitHub Desktop.
pygit2 api reference
#### Basic API (low-level)
* public libgit2 structs should be python objects (classes) - Example: git_repository => Repository()
* nameing convention: strip git_`struct_name`_* - Example: git_repository_config() => Repository.config()
* iterations should be implemented as a generator, if this is not possible we
need to change libgit2 (other bindings will benefit from this as well)
* every method should map to one libgit2 function (exceptions are iterations)
* return values of methods
* no lists use generators instead
* no dictionaries use tuples or objects instead
* no instantiation of objects use strings instead (important for generators)
like sha1-hash for objects or names for references.
### High-Level API
* inheritance for every object
* no return value restrictions
* *pythonic*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment