Developing Reg

Install Reg for development

First make sure you have virtualenv installed for Python 2.7.

Now create a new virtualenv somewhere for Reg’s development:

$ virtualenv /path/to/ve_reg

The goal of this is to isolate you from any globally installed versions of setuptools, which may be incompatible with the requirements of the buildout tool. You should also be able to recycle an existing virtualenv, but this method guarantees a clean one.

Clone Reg from github ( and go to the reg directory:

$ git clone
$ cd reg

Now we need to run to set up buildout, using the Python from the virtualenv we’ve created before:

$ /path/to/ve_reg/bin/python

This installs buildout, which can now set up the rest of the development environment:

$ bin/buildout

This will download and install various dependencies and tools.

Running the tests

You can run the tests using py.test. Buildout will have installed it for you in the bin subdirectory of your project:

$ bin/py.test reg

To generate test coverage information as HTML do:

$ bin/py.test --cov reg --cov-report html

You can then point your web browser to the htmlcov/index.html file in the project directory and click on modules to see detailed coverage information.

Running the documentation tests

The documentation contains code. To check these code snippets, you can run this code using this command:

$ bin/sphinxpython bin/sphinx-build  -b doctest doc out

Building the HTML documentation

To build the HTML documentation (output in doc/build/html), run:

$ bin/sphinxbuilder

Various checking tools

The buildout will also have installed flake8, which is a tool that can do various checks for common Python mistakes using pyflakes, check for PEP8 style compliance and can do cyclomatic complexity checking. To do pyflakes and pep8 checking do:

$ bin/flake8 reg

To also show cyclomatic complexity, use this command:

$ bin/flake8 --max-complexity=10 reg