Contributing

We welcome contributions via GitHub pull requests:

Developing

Prepare a developer environment. Then, from the blessed code folder:

pip install --editable .

Any changes made in this project folder are then made available to the python interpreter as the ‘blessed’ package regardless of the current working directory.

Running Tests

Install and run tox

pip install --upgrade tox
tox

Py.test is used as the test runner, supporting positional arguments, you may for example use looponfailing with python 3.5, stopping at the first failing test case, and looping (retrying) after a filesystem save is detected:

tox -epy35 -- -fx

Test Coverage

When you contribute a new feature, make sure it is covered by tests. Likewise, a bug fix should include a test demonstrating the bug. Blessed has nearly 100% line coverage, with roughly 1/2 of the codebase in the form of tests, which are further combined by a matrix of varying TERM types, providing plenty of existing test cases to augment or duplicate in your favor.

Style and Static Analysis

The test runner (tox) ensures all code and documentation complies with standard python style guides, pep8 and pep257, as well as various static analysis tools through the sa target, invoked using:

tox -esa

All standards enforced by the underlying style checker tools are adhered to, with the declarative exception of those found in landscape.yml, or inline using pylint: disable= directives.