# 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

# Additional requirements:

# * pip>=9.0.0 to support the --upgrade-strategy option
# * setuptools>=20.5 to support environment markers
# * pip 10.0.0 introduced the --exclude-editable option.
# * pip 18.0 is needed on pypy3 (py36) to support constraints like cffi!=1.11.3,>=1.8.
# * pip 20.0 introduced the  --no-python-version-warning 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 21.0 dropped support for Python 3.5.
# * pip 22.0 dropped support for Python 3.6.
pip==10.0.1; python_version <= '3.5'
pip==21.3.1; python_version >= '3.6' and python_version <= '3.10'
pip==22.2.2; python_version >= '3.11'

# setuptools 41.5.0 fixes build errors with Visual C++ 14.0 on Windows
# setuptools 41.5.1 fixes a py27 regression introduced by 41.5.0.
# setuptools 44.0.0, last version that states py 2.7 requirement
# setuptools 49.0.0 fixes the comparison of Python versions in requirements that was
#   based on strings and thus ignored certain requirements on Python 3.10.
# setuptools safety issue 52495 affects 65.1.1
setuptools==41.5.1; python_version <= '3.9'
setuptools==65.2.0; python_version >= '3.10'

# wheel 0.36.2 fixes empty and invalid tag issues in archive file name, and supports get_platform() with args
# wheel 0.38.1 fixes CVE issue 51499, and dropped support for Python <=3.6
wheel==0.36.2; python_version <= '3.7'
wheel==0.38.1; python_version >= '3.8'


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

mock==2.0.0; python_version == '2.7'
ordereddict==1.1
ply==3.10
PyYAML==5.3.1; python_version == '2.7'
PyYAML==5.3.1; python_version >= '3.5'
six==1.14.0; python_version <= '3.9'
six==1.16.0; python_version >= '3.10'
requests==2.25.0; python_version == '2.7'
requests==2.25.0; python_version >= '3.5' and python_version <= '3.6'
requests==2.31.0; python_version >= '3.7'
yamlloader==0.5.5
nocaselist==1.0.3
nocasedict==1.0.1


# Indirect dependencies for installation (not in requirements.txt)

certifi==2019.11.28
# requests>=2.26.0 uses charset-normalizer instead of chardet; both are not used by any other package
chardet==3.0.2; python_version <= '3.9'
charset-normalizer==2.0.0; python_version >= '3.10'
# urllib3 >= 2.0.0 minimum python == '3.7'
urllib3==1.25.9; python_version == '2.7'
urllib3==1.25.9; python_version == '3.5'
urllib3==1.25.9; python_version == '3.6'
# TODO issue #3006. Update the following to include urllib3 version 2
# for python version >= 3.7 when issue #3006 resolved.
# TODO issue #3006. Update the following to include urllib3 version 2 for
# python >= python 3.7 when issue resolved.
urllib3==1.25.9; python_version >= '3.7' and python_version <= '3.9'
urllib3==1.26.5; python_version >= '3.10'

# funcsigs; is covered in direct deps for develop, from mock

# From easy-vault:
cryptography==3.3; python_version == '2.7'
cryptography==3.2.1; python_version == '3.5'
cryptography==3.4.7; python_version == '3.6'
cryptography==41.0.2; python_version >= '3.7'
keyring==18.0.0


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

# Build distribution archive
build==0.5.1

# Cythonize
Cython==0.29.33

# Unit test (imports into testcases):
packaging==19.0; python_version <= '3.5'
# Packaging 21.0 required by safety 2.2.0
packaging==21.3; python_version >= '3.6'
funcsigs==1.0.2; python_version == '2.7'
pytest==4.3.1; python_version == '2.7'
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'
testfixtures==6.9.0; python_version == '2.7'
testfixtures==6.3.0; python_version == '3.5'
testfixtures==6.9.0; python_version >= '3.6'
colorama==0.3.9; python_version == '2.7'
colorama==0.4.5; python_version >= '3.5'
# Using 0.22 caused failure where at least argcompete requires 0.23
importlib-metadata==0.23; python_version <= '3.7'
importlib-metadata==4.8.3; python_version >= '3.8'

pytz==2016.10; python_version <= '3.9'
pytz==2019.1; python_version >= '3.10'
requests-mock==1.6.0
requests-toolbelt==0.8.0
yagot==0.5.0

more-itertools==4.0.0

# Easy-server packages
easy-vault==0.7.0
easy-server==0.8.0
pytest-easy-server==0.8.0

# Virtualenv
virtualenv==20.0.35

# Unit test (indirect dependencies):
pluggy==0.7.1; python_version == '2.7'
pluggy==0.12.0; python_version >= '3.5' and python_version <= '3.6'
pluggy==0.13.0; python_version >= '3.7'
decorator==4.0.11
# FormEncode is used for xml comparisons in unit test
FormEncode==1.3.1; python_version <= '3.9'
FormEncode==2.0.0; python_version >= '3.10'

# Lxml
lxml==4.6.2; python_version == '2.7'
lxml==4.6.2; python_version >= '3.5' and python_version <= '3.9'
lxml==4.6.4; python_version == '3.10'
lxml==4.9.2; python_version >= '3.11'

# 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'
# version 2. not compatible with python 3.5
safety==1.9.0; python_version == '3.5'
# safety 2.2.0 resolves safety issue #51358
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 version 0.6.2 required by safety 2.2.0
dparse==0.6.2; python_version >= '3.6'

# Tox
tox==2.5.0

# 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'
# See dev-requirements.txt for reason to use 4.2.0 as minimum for py 3.10
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; python_version == '2.7'
GitPython==2.1.1; python_version >= '3.5' and python_version <= '3.6'
GitPython==3.1.27; python_version >= '3.7'
sphinxcontrib-fulltoc==1.2.0
sphinxcontrib-websupport==1.1.2
sphinxcontrib-applehelp==1.0.2; python_version >= '3.5'
sphinxcontrib-devhelp==1.0.2; python_version >= '3.5'
sphinxcontrib-htmlhelp==1.0.3; python_version >= '3.5' and python_version <= '3.9'
sphinxcontrib-htmlhelp==2.0.0; python_version >= '3.10'
sphinxcontrib-jsmath==1.0.1; python_version >= '3.5'
sphinxcontrib-qthelp==1.0.3; python_version >= '3.5'
sphinxcontrib-serializinghtml==1.1.5; python_version >= '3.5'
Pygments==2.1.3; python_version == '2.7'
Pygments==2.7.4; python_version == '3.5'
Pygments==2.13.0; python_version == '3.6'
Pygments==2.15.0; python_version >= '3.7'
sphinx-rtd-theme==0.5.0
autodocsumm==0.1.13; python_version == '2.7'
autodocsumm==0.1.13; python_version == '3.5'
autodocsumm==0.2.5; python_version >= '3.6'
Babel==2.7.0; python_version == '2.7'
# Safety issue #42203  affected < 2.9.1
Babel==2.9.1; python_version == '3.5'
Babel==2.10.0; python_version >= '3.6'


# PyLint (no imports, invoked via pylint script):
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'

# rich 13.3.5 requires typing-extensions>=4.0.0,<5.0
# typing-extensions 4.0.0 removed support for Python < 3.6
typing-extensions==3.10.0; python_version == '2.7'
typing-extensions==3.10.0; python_version == '3.5'
typing-extensions==4.0.0; python_version >= '3.6' and python_version <= '3.10'
typed-ast==1.4.0; python_version >= '3.6' and python_version < '3.8' 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'  # technically: python_version < '3.2'

# Twine (no imports, invoked via twine script):
twine==1.8.1; python_version <= '3.5'
twine==3.0.0; python_version >= '3.6'
readme-renderer==23.0
pkginfo==1.4.2

# Jupyter Notebook (no imports, invoked via jupyter script):
jupyter==1.0.0

ipython==5.1.0; python_version == '2.7'
ipython==7.0; python_version == '3.5'
ipython==7.16.3; python_version == '3.6'
ipython==7.23.1; python_version >= '3.7'

ipykernel==4.5.2; python_version == '2.7'
ipykernel==4.5.2; python_version >= '3.5' and python_version <= '3.6'
ipykernel==6.2.0; python_version >= '3.7'

ipython_genutils==0.1.0

ipywidgets==5.2.2; python_version == '2.7'
ipywidgets==5.2.2; python_version >= '3.5' and python_version <= '3.6'
ipywidgets==8.0.0; python_version >= '3.7'

jupyter_console==5.0.0; python_version == '2.7'
jupyter_console==6.0.0; python_version >= '3.5'

jupyter_client==4.4.0; python_version == '2.7'
jupyter_client==4.4.0; python_version == '3.5'
jupyter-client==6.1.12; python_version == '3.6'
jupyter-client==7.4.4; python_version >= '3.7'

jupyter-core==4.2.1; python_version == '2.7'
jupyter_core==4.2.1; python_version == '3.5'
jupyter-core==4.6.1; python_version == '3.6'
jupyter-core==4.12.0; python_version >= '3.7'

jupyterlab-pygments==0.1.2

jupyterlab-widgets==0.6.5; python_version == '2.7'
jupyterlab-widgets==0.6.5; python_version == '3.5'
jupyterlab-widgets==1.0.2; python_version == '3.6'
jupyterlab-widgets==3.0.0; python_version >= '3.7'

jupyter-server==1.24.0; python_version == '3.7'
jupyter-server==2.4.0; python_version >= '3.8'

nbclassic==0.4.7; python_version >= '3.7'

nbclient==0.5.9; python_version == '3.6'
nbclient==0.5.13; python_version >= '3.7'

nbconvert==5.0.0; python_version == '2.7'
nbconvert==5.0.0; python_version == '3.5'
nbconvert==5.0.0; python_version == '3.6'
nbconvert==6.5.1; python_version >= '3.7'

nbformat==4.2.0; python_version == '2.7'
nbformat==4.2.0; python_version == '3.5'
nbformat==5.1.3; python_version == '3.6'
nbformat==5.3.0; python_version >= '3.7'

notebook==4.3.1; python_version == '2.7'
notebook==4.3.1; python_version == '3.5'
notebook==6.4.10; python_version == '3.6'
notebook==6.5.4; python_version >= '3.7'

notebook-shim==0.2.0; python_version >= '3.7'

jupyterlab-server==2.22.1; python_version >= '3.8'

jupyterlab==4.0.2; python_version >= '3.8'

jupyterlab-server==2.22.1; python_version >= '3.8'

jupyterlab==4.0.2; python_version >= '3.8'

pyrsistent==0.14.0; python_version == '2.7'
pyrsistent==0.14.0; python_version >= '3.5' and python_version <= '3.6'
pyrsistent==0.19.1; python_version >= '3.7'

# Pywin32 is used (at least?) by jupyter.
pywin32==222; sys_platform == 'win32' and python_version == '2.7'
pywin32==222; sys_platform == 'win32' and python_version >= '3.5' and python_version <= '3.6'
pywin32==223; sys_platform == 'win32' and python_version == '3.7'
pywin32==227; sys_platform == 'win32' and python_version >= '3.8' and python_version <= '3.9'
pywin32==303; sys_platform == 'win32' and python_version >= '3.10'

# Table output formatter used by the manual performance tests to display
# timing results
tabulate==0.8.3

# Performance profiling tools
pyinstrument==3.0.1
pyinstrument-cext==0.2.2  # from pyinstrument
psutil==5.9.0; sys_platform != 'cygwin' and platform_python_implementation != 'PyPy'
psutil==5.6.0; sys_platform != 'cygwin' and platform_python_implementation == 'PyPy'

# Package dependency management tools
pipdeptree==2.2.0
pip-check-reqs==2.3.2; python_version >= '3.5' and python_version <= '3.10'
pip-check-reqs==2.4.3; python_version >= '3.11'

# notebook 6.4.10 depends on pyzmq>=17
pyzmq==17.0.0; python_version <= '3.6'
pyzmq==24.0.0; python_version >= '3.7'

# Indirect dependencies for develop that need constraints

bleach==3.3.0; python_version == '2.7'
bleach==3.3.0; python_version >= '3.5'

pywinpty==0.5; os_name == "nt" and python_version <= '3.6'
pywinpty==2.0.3; os_name == "nt" and python_version >= '3.7'

# Indirect dependencies for develop (not in dev-requirements.txt)

alabaster==0.7.9
# jupyter-server 1.24.0 depends on anyio>=3.1.0,<4
anyio==3.1.0; python_version >= '3.7'
appnope==0.1.0
appdirs==1.4.3
argon2-cffi==21.2.0; python_version >= '3.6'
argon2-cffi-bindings==21.2.0; python_version >= '3.6'
args==0.1.0
asttokens==2.0.4; python_version >= '3.6'
atomicwrites==1.4.0; python_version == '2.7'
attrs==19.2.0; python_version >= '3.5'
backcall==0.2.0; python_version >= '3.5'
backports-abc==0.5; python_version == '2.7'
backports.functools-lru-cache==1.6.4; python_version == '2.7'
backports.shutil-get-terminal-size==1.0.0; python_version == '2.7'
backports.statistics==0.1.0; python_version == '2.7'
beautifulsoup4==4.10.0; python_version >= '3.5'
cffi==1.14.5
# Click used by easy-vault (8.0.2) and safety (7.1.1).
Click==7.1.1; python_version <= '3.5'
Click==8.0.2; python_version >= '3.6'
clint==0.5.1
configparser==4.0.2; python_version == '2.7'
contextlib2==0.6.0.post1; python_version == '2.7'
dataclasses==0.8; python_version == '3.6'  # used by safety 2.3.1 and argon-cffi
debugpy==1.5.1; python_version >= '3.5'
defusedxml==0.7.1
distlib==0.3.4
docopt==0.6.1
enum34==1.1.10; python_version == '2.7'
filelock==3.0.0
# Safety issue #52510 affected <=0.18.2
future==0.18.3
futures==3.3.0; python_version == '2.7'
# gitdb2 is a mirror Pypi name for certain gitdb versions.
gitdb2==2.0.6; python_version == '2.7'
gitdb2==2.0.6; python_version >= '3.5' and python_version <= '3.6'
gitdb==4.0.8; python_version >= '3.7'
html5lib==0.999999999
# anyio 3.1.0 depends on idna>=2.8
idna==2.8
imagesize==0.7.1
importlib-resources==3.2.1; python_version <= '3.8'  # used by virtualenv 20.0.35
iniconfig==1.1.1; python_version >= '3.5'
ipaddress==1.0.23; python_version == '2.7'
jedi==0.17.2; python_version >= '3.5'
Jinja2==2.8.1; python_version <= '3.5'
# Jinja2 version for python 3.6 is 3.0.0 because nbconvert 6.5.1 requirment
# that changes at python 36
# Safety issues #39525 affects <2.11.3 and #54679 affects <2.10.1
Jinja2==3.0.3; python_version >= '3.6'
jsonschema==2.6.0; python_version <= '3.6'
jsonschema==4.17.3; python_version >= '3.7'
linecache2==1.0.0

# MarkupSafe version depends on nbconvert min version 6.5.1 requirement
# Jinja2 3.0.0 depends on MarkupSafe>=2.0.0rc2
MarkupSafe==1.1.0; python_version <= '3.5'
MarkupSafe==2.0.0; python_version >= '3.6'
matplotlib-inline==0.1.3; python_version >= '3.5'
mistune==0.8.1
nest-asyncio==1.5.4; python_version >= '3.5'
pandocfilters==1.4.1
parso==0.7.0; python_version >= '3.5'
pathlib2==2.3.7.post1

pexpect==4.2.1; python_version == '2.7'
pexpect==4.2.1; python_version == '3.5'
# ipython 7.23.1 depends on pexpect>4.3, sys_platform != "win32"
# pexpect==4.3.1; python_version >= '3.6' and sys_platform != "win32"
pexpect==4.4.0; python_version >= '3.6'
pickleshare==0.7.4
prometheus-client==0.12.0; python_version == '2.7'
prometheus-client==0.12.0; python_version == '3.5'
prometheus-client==0.13.1; python_version >= '3.6'
prompt-toolkit==2.0.1
ptyprocess==0.5.1
# Safety issue 51457, min version 1.11.0
py==1.11.0
pycparser==2.21
pyparsing==2.4.7; python_version == '2.7'
pyparsing==2.4.7; python_version == '3.5'
pyparsing==3.0.7; python_version >= '3.6'
python-dateutil==2.8.2
qtconsole==4.2.1
QtPy==1.11.3; python_version == '2.7'
QtPy==2.0.1; python_version >= '3.5'
rfc3986==1.4.0
rich==12.0.0; python_version >= '3.6'
scandir==1.10.0; python_version == '2.7'
Send2Trash==1.8.0
sh==1.12.14
simplegeneric==0.8.1
singledispatch==3.7.0; python_version == '2.7'
# smmap2 is used by gitdb2
# smmap is used by gitdb
smmap2==2.0.1; python_version == '2.7'
smmap2==2.0.1; python_version >= '3.5' and python_version <= '3.6'
smmap==5.0.0; python_version >= '3.7'
snowballstemmer==1.2.1
soupsieve==2.3.1; python_version >= '3.5'
stack-data==0.2.0; python_version >= '3.6'

# This version caused by notebook 6.4.10 depends on terminado>=0.8.3
terminado==0.6; python_version == '2.7'
terminado==0.6; python_version == '3.5'
terminado==0.8.3; python_version >= '3.6'
testpath==0.3
toml==0.10.0
tomli==2.0.1; python_version >= '3.5'

tornado==4.4.2; python_version == '2.7'
tornado==4.4.2; python_version == '3.5'
tornado==6.1; python_version == '3.6'
tornado==6.2; python_version == '3.7'
tornado==6.3.2; python_version >= '3.8'

tqdm==4.14
traceback2==1.4.0

# nbconvert 6.5.1 depends on traitlets>=5.0
# traitlets 5.0.0 removed support for Python 3.6
# jupyter-server 1.17.0 depends on traitlets>=5.1
traitlets==4.3.1; python_version == '2.7'
traitlets==4.3.1; python_version == '3.5'
traitlets==4.3.1; python_version == '3.6'
traitlets==5.6.0; python_version >= '3.7'

typing==3.10.0.0; python_version == '2.7'
wcwidth==0.1.7
webencodings==0.5.1
widgetsnbextension==1.2.6; python_version <= '3.6'
# multiple versions because of version issues with ipywidgets
widgetsnbextension==4.0.0; python_version >= '3.7'
zipp==1.2.0
