# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt

# Requirements for doing local development work on coverage.py.
# https://requires.io/github/nedbat/coveragepy/requirements/

# PyPI requirements for running tests.
nose==1.3.7
-r tox.pip

# for linting.
greenlet==0.4.9
mock==1.3.0
PyContracts==1.7.6
pyenchant==1.6.6
pylint==1.4.4

# for kitting.
requests==2.8.1
twine==1.6.4
