# Pip constraints file.
#
# This file specifies constraints that define the minimum versions of any
# direct and indirect dependent packages for installation and development of
# the project.
# They are used when setting up test environments with the minimum versions of
# any dependent packages.


# Dependencies for installation with Pip (must be installed in a separate pip call)
#
# Info: OS-installed package versions for some Linux distros:
# * RHEL/CentOS 7.4.1708:
#   Python      2.7.5     2013-05-15
#   pip         8.1.2     2016-05-11 (epel)
#   setuptools  0.9.8     2013-07-25
#   wheel       0.24.0    2014-07-06 (epel)
# * Ubuntu 16.04.03:
#   Python      2.7.12    2016-11-19
#   pip         8.1.1     2016-03-17
#   setuptools  20.7.0    2016-04-10
#   wheel       0.29.0    2016-02-06
# * Ubuntu 17.04:
#   Python      2.7.12    2016-11-19
#   pip         9.0.1     2016-11-06
#   setuptools  33.1.1    2017-01-16
#   wheel       0.29.0    2016-02-06
# * Ubuntu 18.04:
#   Python      2.7.15
#   Python3     3.6.5
#   pip         9.0.1     (py2+py3)
#   setuptools  39.0.1    (py2+py3)
#   wheel       0.30.0    (py2+py3)
# * Ubuntu 19.04:
#   Python      2.7.16
#   Python3     3.7.3
#   pip         18.1      (py2+py3)
#   setuptools  40.8.0    (py2+py3)
#   wheel       0.32.3    (py2+py3)
# * Versions installed on Python 3.8 on Appveyor
#   Python38    3.8.0
#   pip         19.3.1
#   setuptools  41.6.0
#   wheel       0.33.6
#
# Info: Python version supported by base packages (added / removed)
# * Python 2.7 support:
#   pip         ?
#   setuptools  ? / 45.0.0
#   wheel       ?
# * Python 3.5 support:
#   pip         8.0
#   setuptools  18.3
#   wheel       0.30.0
# * Python 3.6 support:
#   pip         10.0.0
#   setuptools  34.0.0
#   wheel       0.30.0
# * Python 3.7 support:
#   pip         18.1
#   setuptools  40.6.0
#   wheel       0.32.0
# * Python 3.8 support:
#   pip         19.3.1
#   setuptools  41.5.0
#   wheel       0.33.5

# For the base packages, we use the versions from Ubuntu 18.04 as a general
# minimum, and then increase it to the first version that introduced support
# for a particular Python version.
# pip 18.0 is needed on pypy3 (py36) to support constraints like cffi!=1.11.3,>=1.8.
# pip 10.0.0 introduced the --exclude-editable option.
# Pip 20.2 introduced a new resolver whose backtracking had issues that were resolved only in 21.2.2.
# pip>=21.0 is needed for the cryptography package on Windows on GitHub Actions.
pip==10.0.1; python_version <= '3.5'
pip==21.2.2; python_version >= '3.6'
setuptools==39.0.1; python_version <= '3.6'
setuptools==40.6.0; python_version == '3.7'
setuptools==41.5.0; python_version >= '3.8' and python_version <= '3.9'
setuptools==49.0.0; python_version >= '3.10'
wheel==0.30.0; python_version <= '3.6'
wheel==0.32.0; python_version == '3.7'
wheel==0.33.5; python_version >= '3.8'


# Direct dependencies for installation (must be consistent with requirements.txt)

# six (used by virtualenv, tox, probably others)
# virtualenv 20.0 requires six>=1.12.0 on py>=3.8
# tox 3.17 requires six>=1.14.0
six==1.14.0


# Indirect dependencies for installation (must be consistent with requirements.txt, if present)

# None


# Direct dependencies for test (must be consistent with test-requirements.txt)

# Unit test direct dependencies (e.g. imports into testcases):

# pytest
# pytest 5.0.0 has removed support for py27
# pytest 4.3.1 solves an issue on Python 3 with minimum package levels
pytest==4.3.1; python_version <= '3.6'
pytest==4.4.0; python_version >= '3.7' and python_version <= '3.9'
pytest==6.2.5; python_version >= '3.10'


# Install test direct dependencies:

# virtualenv
virtualenv==16.1.0; python_version == '2.7'
virtualenv==20.1.0; python_version >= '3.5'


# Indirect dependencies for test (must be consistent with test-requirements.txt, if present)

# packaging (used by pytest)
# Packaging 21.0 is required by safety 2.2.0
packaging==17.0; python_version == '2.7'
packaging==17.0; python_version == '3.5'
packaging==21.0; python_version == '3.6'
packaging==22.0; python_version >= '3.7'

# pluggy (used by pytest, tox)
pluggy==0.13.1

# pathlib2 (used by virtualenv on py27 on non-Windows)
pathlib2==2.3.3; python_version == '2.7' and sys_platform != 'win32'


# Indirect dependencies that must be handled early (must be consistent with dev-requirements.txt)

# tox and flake8 have requirements on importlib-metadata
importlib-metadata==1.1.0; python_version <= '3.7'


# Direct dependencies for development (must be consistent with dev-requirements.txt)

# Coverage reporting (no imports, invoked via coveralls script):
coverage==5.0
pytest-cov==2.7.0
# Links are not allowed in constraint files - minimum ensured by dev-requirements.txt:
# git+https://github.com/andy-maier/coveralls-python.git@andy/add-py27#egg=coveralls; python_version == '2.7'
coveralls==3.3.0; python_version >= '3.5'

# Safety CI by pyup.io
safety==1.8.7; python_version == '2.7'
safety==1.9.0; python_version == '3.5'
safety==2.2.0; python_version >= '3.6'
dparse==0.4.1; python_version == '2.7'
dparse==0.5.1; python_version == '3.5'
dparse==0.6.2; python_version >= '3.6'

# Click is used by safety
Click==7.0; python_version <= '3.5'
Click==8.0.2; python_version >= '3.6'

# PyYAML is pulled in by dparse
PyYAML==5.3.1; python_version == '2.7'
PyYAML==5.3.1; python_version >= '3.5'

# Tox
tox==3.14.0; python_version == '2.7'
tox==3.21.0; python_version >= '3.5'

# Sphinx (no imports, invoked via sphinx-build script):
Sphinx==1.7.6; python_version == '2.7'
Sphinx==3.5.4; python_version >= '3.5' and python_version <= '3.9'
Sphinx==4.2.0; python_version >= '3.10'
docutils==0.13.1; python_version == '2.7'
docutils==0.13.1; python_version >= '3.5' and python_version <= '3.9'
docutils==0.14; python_version == '3.10'
docutils==0.16; python_version >= '3.11'
sphinx-git==10.1.1
GitPython==2.1.1
sphinxcontrib-fulltoc==1.2.0
sphinxcontrib-websupport==1.1.2
Pygments==2.1.3; python_version == '2.7'
Pygments==2.7.4; python_version >= '3.5'
sphinx-rtd-theme==1.0.0
Babel==2.7.0

# PyLint (no imports, invoked via pylint script) - does not support py3:
pylint==2.5.2; python_version == '3.5'
pylint==2.10.0; python_version >= '3.6' and python_version <= '3.10'
pylint==2.15.0; python_version >= '3.11'
astroid==2.4.0; python_version == '3.5'
astroid==2.7.2; python_version >= '3.6' and python_version <= '3.10'
astroid==2.12.4; python_version >= '3.11'
typing-extensions==3.10; python_version <= '3.10'
typed-ast==1.4.0; python_version >= '3.5' and python_version <= '3.7' and implementation_name=='cpython'
lazy-object-proxy==1.4.3; python_version >= '3.5'
wrapt==1.12; python_version >= '3.5' and python_version <= '3.10'
wrapt==1.14; python_version >= '3.11'
isort==4.3.8
tomlkit==0.10.1; python_version >= '3.7'
dill==0.2; python_version >= '3.6' and python_version <= '3.10'
dill==0.3.6; python_version >= '3.11'
platformdirs==2.2.0; python_version >= '3.6'

# Flake8 and dependents (no imports, invoked via flake8 script):
flake8==3.8.0; python_version <= '3.9'
flake8==4.0.0; python_version >= '3.10'
mccabe==0.6.0
pycodestyle==2.6.0; python_version <= '3.9'
pycodestyle==2.8.0; python_version >= '3.10'
pyflakes==2.2.0; python_version <= '3.9'
pyflakes==2.4.0; python_version >= '3.10'
entrypoints==0.3.0
functools32==3.2.3.post2; python_version == '2.7'

# Twine (no imports, invoked via twine script):
twine==1.8.1
readme-renderer==23.0


# Indirect dependencies with special constraints:

# pytz (used by TBD)
pytz==2016.10; python_version <= '3.9'
pytz==2019.1; python_version >= '3.10'

# colorama (used by tox, pytest)
colorama==0.3.9; python_version == '2.7'
colorama==0.4.5; python_version >= '3.5'


# Other indirect dependencies (not in any requirements file):

alabaster==0.7.9
appdirs==1.4.4; python_version >= '3.5'
args==0.1.0
atomicwrites==1.2.1; python_version == '2.7'
attrs==18.2.0; python_version <= '3.9'
attrs==19.2.0; python_version >= '3.10'
backports.functools-lru-cache==1.5; python_version == '2.7'
bleach==2.1.4
certifi==2019.9.11
chardet==3.0.3
clint==0.5.1; python_version == '2.7'
configparser==4.0.2; python_version == '2.7'
contextlib2==0.6.0
distlib==0.3.1; python_version >= '3.5'
docopt==0.6.1
enum34==1.1.6; python_version == '2.7'
filelock==3.0.0; python_version >= '3.5'
funcsigs==1.0.2; python_version == '2.7'
future==0.18.2; python_version == '2.7'
gitdb==4.0.1; python_version >= '3.5'
gitdb2==2.0.0; python_version == '2.7'
html5lib==0.999999999; python_version == '2.7'
idna==2.5
imagesize==0.7.1
Jinja2==2.8; python_version <= '3.9'
Jinja2==2.10.2; python_version >= '3.10'
keyring==17.0.0; python_version >= '3.5'
MarkupSafe==1.1.0
more-itertools==5.0.0
pkginfo==1.4.1
py==1.5.1; python_version <= '3.9'
py==1.11.0; python_version >= '3.10'
pyparsing==2.4.7
python-dateutil==2.6.0; python_version >= '3.5'
pyzmq==16.0.4; python_version >= '3.5'
requests==2.20.1
requests-mock==1.6.0
requests-toolbelt==0.8.0
rfc3986==1.3.0; python_version >= '3.5'
scandir==1.9.0; python_version == '2.7'
smmap==3.0.1
smmap2==2.0.1; python_version == '2.7'
snowballstemmer==1.2.1
sphinxcontrib-applehelp==1.0.0; python_version >= '3.5'
sphinxcontrib-devhelp==1.0.0; python_version >= '3.5'
sphinxcontrib-htmlhelp==1.0.0; python_version >= '3.5' and python_version <= '3.9'
sphinxcontrib-htmlhelp==2.0.0; python_version >= '3.10'
sphinxcontrib-jsmath==1.0.0; python_version >= '3.5'
sphinxcontrib-qthelp==1.0.0; python_version >= '3.5'
sphinxcontrib-serializinghtml==1.1.5; python_version >= '3.5'
toml==0.10.0; python_version >= '3.5'
tqdm==4.11.2; python_version >= '3.5'
typing==3.6.1; python_version == '2.7'
urllib3==1.23
wcwidth==0.1.7
webencodings==0.5.1
zipp==1.2.0
