Coding Guidelines

Code Style

The Tryton Project strongly recommends the following code style:

Python

Code style, in general, follows PEP 8 and PEP 257:

  • Use 4 spaces for indentation.
  • Avoid the usage of from M import *.
  • If unsure about conformity use flake8 to check the code (with option ignore=E123,E124,E126,E128,E741,W503) and isort to check the imports (with the parameters -m VERTICAL_GRID -p trytond).
  • Breaking lines:
    • Use 4 spaces per bracket pair.
    • Prefer parenthesis over backslash.
    • Prefer breaking lines after opening parenthesis.
  • Use double-quotes for strings that are natural language, single-quotes for symbol-like strings and triple double-quotes for multi-line docstrings.

XML

  • Use 4 spaces for indentation.
  • No 80 columns limitation.
  • Opening tag on single line or one attribute per line.

Best Practices

These best practices help keep the code consistent:

  • Use doc-strings and comments in your code.
  • Never pass keyword arguments as positional arguments when calling a method.
  • In the very beginning (right under the doc-string) of a method definition, define all pool objects that will be used (pool.get(...)).

Naming of modules, classes, variables

  • A name should be as descriptive and as short as possible.
  • Avoid unnecessary duplication of names.
  • Naming structure of a model or module must follow these rules:
    • First part of the name is the general function of the module or model,
    • after this come the less general parts of the name (i.e. the more specific name parts) for the module or model
    • If you are unsure with naming, please ask first on the #tryton channel
  • For modules and method names use an underscore to separate the parts of name.
  • For naming classes use CamelCase.