• UTF-8 encoding
  • Indentation of 4 spaces
  • Camel case for classes, everything else lowercase with underscore
  • Try using python data structures and mapping functions whenever is possible, in order to speed up computations… even they can be unreadable
  • Try avoiding get/set and use the same function as both getter and setter, whenever is possible.
  • When something is not implemented the right way, or partially, add a FIXME comment describing the problems and a possible better implementation.

Some of the above guidelines might not be applied when the project will be rewritten in another language like C++.

  • Suggestion for making patches:
    First git pull to merge your changes with latest changes.
    Commit your changes then do git format-patch HEAD^, this will get you credited in the git history. Otherwise you can get the output of git diff without committing the changes.
    Or just do as you prefer, which obviously rocks :)