Developer documentation

Coding standards

  • Python code must be pep8 conform

  • check your code using pylint

  • do not use tabs! Use four whitespaces instead

  • avoid map, filter or lambda commands

  • use format instead of %

  • avoid very long methods

  • use multiple files for completely different classes

  • try to stay Python3.2 conform

  • import of package files should use the complete path (avoid from)

  • all files must include the Python3 compatible header:

    from __future__ import (print_function,
  • new include file features:

    • must be downward compatible

    • must be added to schema files

    • must be documented and there must be a small example

    • must be covered by tests


In the top directory

pylint --rcfile devel-utils/pylint.rc jube2


In the top directory

flake8 --config devel-utils/flake8 jube2

Another possibility is to copy or link the file to the default search path ~/.config/flake8 to use it globally.

Coverage and testing

To produce a coverage report the coverage packet must be installed. Run

python -m coverage run ./
python -m coverage html

in the test directory. The first command creates a coverage report .coverage in the current directory and the second one creates a folder htmlcov with html files visualizing the code coverage by adding colors for covered and uncovered regions of the code. The summary can be viewed in index.html.

Testing for multiprocessing parts need to be performed manually. The corresponding file is located in tests/

Make sure to add tests for your developments.

Documentation creation

Inside the docs directory you can use:

>>> make html        #create html docu files
>>> make pdflatex    #create pdf  docu file
>>> make update_help #update jube command line help

Create distribution

Inside the main JUBE directory you can use:

>>> python sdist

to update the tar.gz file inside the dist directory.

  • Check version before running sdist

  • Store a completely new mayor version inside the tags area of the repository

Python package documentation

Here you will find the Python package documentation of JUBE: Package doku