Getting the Source

You will first want to clone the source repository locally with git:

$ git clone

Setting Up the Environment

I would recommend using virtualenv to set up a dev environment. After creating an environment, install all development dependencies with:

$ pip install -r dev-requirements.txt

Running Tests

Tests are run using pytest and can be found inside tests/*.

Tests can simply be run using:

$ pytest

This will discover and run the test suite using your default Python interpreter. To run tests for all supported platforms, we use tox.

$ tox

Submitting Patches

Patches are accepted via pull requests on GitHub. Please be sure to add a file in the root of the project that contains the release type (major, minor, patch) and a summary of the changes that will be used as the release changelog entry. For example:

Release type: patch

Remove vendored copy of is_safe_url


If you are submitting a security patch, please see our Security page for special instructions.


All new code and changed code must come with 100% test coverage to be considered for acceptance.