Coding rules

If you are unsure about any rule described in this section, see the source code for examples and clarification.

Python

  • This project follows the PEP 8 style guide. Use a text editor that highlights parts of the code that do not conform to PEP 8 or use an external tool to do that. One such tool is flake8 (pip install flake8). You can test the correctness of a source file by running flake8 file.py. We are not summarizing here all the rules described by PEP 8 but one thing worth noting is that the maximum line length is 79 characters.

HTML and Javascript

  • See the Airbnb style guide for instructions on formatting: https://github.com/airbnb/javascript.
  • The maximum line length for Javascript is 80 characters.
  • The line length limit of HTML is harder to establish because of the highly nested nature of HTML. Although not as strict, try to keep the lines within 120 characters.
  • Use UNIX-style newlines (\n). Windows-style newlines (\r\n) are not allowed.

Python imports

  • Group imports as follows: standard system libraries, Django libraries, local libraries. Separate the groups by blank lines.
  • Within a group, sort the imports alphabetically. This also means that from ... should come before import ....
  • Do not import multiple things on one line. For example, import os, sys should be split into two imports.

Django template tags

  • Leave one space around the opening and closing symbols of a construct (e.g., verb+{{+, verb+%}+, ldots).