# Pip constraints file for install and development dependencies.
#
# This file specifies constraints that match the minimum versions specified in
# the requirement files for install and development. They are used for example
# when setting up test environments with the minimum versions of any dependent
# packages.


# Note: The included file is processed by Pip but ignored by the Safety tool.
# Thus, safety with the 'all' profile actually only checks development packages,
# but that's ok since the 'install' profile checks the install packages.
-c minimum-constraints-install.txt


# Direct dependencies for test and indirect dependencies for test that are
# needed for some reason (must be consistent with test-requirements.txt)

# Unit test (imports into testcases):
packaging==19.0; python_version == '2.7'
packaging==21.0; python_version == '3.6'
packaging==22.0; python_version >= '3.7'
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
colorama==0.3.9; python_version == '2.7'
colorama==0.4.5; python_version >= '3.6'

# Easy-server packages
easy-vault==0.7.0
easy-server==0.8.0
pytest-easy-server==0.8.0
cryptography==3.3; python_version == '2.7'
cryptography==3.4.7; python_version == '3.6'
# minimum version 42.0.2, safety issue 2024-3-17
cryptography==43.0.1; python_version >= '3.7'
keyring==18.0.0

jsonschema==2.6.0; python_version <= '3.6'
jsonschema==4.17.3; python_version == '3.7'
# jsonschema v 4.18.0 required by jupyter-events 0.9.1
jsonschema==4.18.0; python_version >= '3.8'

requests-mock==1.6.0
requests-toolbelt==0.8.0
yagot==0.5.0

importlib-metadata==2.1.3; python_version <= '3.6'
importlib-metadata==4.8.3; python_version >= '3.7'

pytz==2016.10; python_version <= '3.9'
pytz==2019.1; python_version >= '3.10'

# Unit test (indirect dependencies):
pluggy==0.7.1; python_version == '2.7'
pluggy==0.12.0; 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 == '2.7'
FormEncode==2.0.0; python_version >= '3.6'

# Lxml
lxml==4.6.2; python_version == '2.7'
lxml==4.6.2; python_version >= '3.6' and python_version <= '3.9'
lxml==4.6.4; python_version == '3.10'
lxml==4.9.2; python_version == '3.11'
lxml==4.9.3; python_version >= '3.12'
# 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.6'

# Virtualenv
virtualenv==20.15.0; python_version <= '3.11'  # requires six<2,>=1.12.0
virtualenv==20.26.6; python_version >= '3.12'


# Direct dependencies for development (without test) and indirect dependencies
# for development (without test) that are needed for some reason (must be
# consistent with dev-requirements.txt)

# Build distribution archive
build==0.5.1

# Cythonize
Cython==3.0.0

# Vendorize
vendorize==0.2.2; python_version == '2.7'
vendorize==0.3.0; python_version >= '3.6'

more-itertools==4.0.0

# Safety CI by pyup.io
# Safety is run only on Python >=3.7
safety==3.0.1; python_version >= '3.7'
safety-schemas==0.0.1; python_version >= '3.7'
# The following used by safety
Levenshtein==0.25.1
# TODO: Change to dparse 0.6.4 once released
dparse==0.6.4b0; python_version >= '3.7'
ruamel.yaml==0.17.21; python_version >= '3.7'
Authlib==1.2.0; python_version == '3.7'
Authlib==1.3.1; python_version >= '3.8'
marshmallow==3.15.0; python_version >= '3.7'
pydantic==1.10.13; python_version >= '3.7'
typer==0.12.0; python_version >= '3.7'
typer-cli==0.12.0; python_version >= '3.7'
typer-slim==0.12.0; python_version >= '3.7'

# Tox
tox==2.5.0

# Sphinx (no imports, invoked via sphinx-build script):
Sphinx==7.1.0; python_version == '3.8'
Sphinx==7.2.4; python_version >= '3.9'
docutils==0.18.1; python_version >= '3.8'
sphinx-git==10.1.1; python_version >= '3.8'
GitPython==3.1.41; python_version >= '3.8'
Pygments==2.15.0; python_version >= '3.8'
sphinx-rtd-theme==2.0.0; python_version >= '3.8'
sphinxcontrib-applehelp==1.0.4; python_version >= '3.8'
sphinxcontrib-devhelp==1.0.2; python_version >= '3.8'
sphinxcontrib-htmlhelp==2.0.1; python_version >= '3.8'
sphinxcontrib-jquery==4.1; python_version >= '3.8'
sphinxcontrib-jsmath==1.0.1; python_version >= '3.8'
sphinxcontrib-qthelp==1.0.3; python_version >= '3.8'
sphinxcontrib-serializinghtml==1.1.5; python_version == '3.8'
sphinxcontrib-serializinghtml==1.1.9; python_version >= '3.9'
sphinxcontrib-websupport==1.2.4; python_version >= '3.8'
autodocsumm==0.2.12; python_version >= '3.8'
Babel==2.10.0; python_version >= '3.8'
roman-numerals-py==1.0.0; python_version >= '3.9'

# PyLint (no imports, invoked via pylint script):
# Not installed below Python 3.6
pylint==2.13.0; python_version >= '3.6' and python_version <= '3.10'
pylint==2.15.0; python_version == '3.11'
pylint==3.0.3; python_version >= '3.12'
astroid==2.11.0; python_version >= '3.6' and python_version <= '3.10'
astroid==2.12.4; python_version == '3.11'
astroid==3.0.2; python_version >= '3.12'
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.6'
wrapt==1.12; python_version >= '3.6' and python_version <= '3.10'
wrapt==1.14; python_version >= '3.11'
platformdirs==2.2.0; python_version == '3.6'
platformdirs==2.5.0; python_version >= '3.7' and python_version <= '3.11'
platformdirs==3.9.1; python_version >= '3.12'
isort==4.3.8
tomlkit==0.10.1; python_version >= '3.7'
dill==0.3.4; python_version >= '3.6' and python_version <= '3.10'
dill==0.3.7; python_version >= '3.11'

# Flake8 and dependents (no imports, invoked via flake8 script):
flake8==3.8.0,<4.0.0; python_version == '2.7'
flake8==3.8.0; python_version >= '3.6' and python_version <= '3.9'
flake8==5.0.0; python_version >= '3.10'
# pylint 2.10.0 depends on mccabe<0.7 and >=0.6 (python 3.6 - 3.10)
# pylint 2.15.0 depends on mccabe >=0.6,<0.8 (python 3.11)
#               astroid>=2.12.4,<=2.14.0-dev0
# pylint 3.0.1 depends on mccabe >=0.6,<0.8
# flake8 3.8.0 depends on mccabe<0.7 and >=0.6
# flake8 5.0.0 depends on mccabe >=0.7.0,<0.8.0
mccabe==0.6.0; python_version <= '3.9'
mccabe==0.7.0; python_version >= '3.10'
pycodestyle==2.6.0; python_version <= '3.9'
pycodestyle==2.9.0; python_version >= '3.10'
pyflakes==2.2.0; python_version <= '3.9'
pyflakes==2.5.0; python_version >= '3.10'
entrypoints==0.3.0
functools32==3.2.3.post2; python_version == '2.7'  # technically: python_version < '3.2'

# Ruff checker
ruff==0.3.5; python_version >= '3.7'

# Twine (no imports, invoked via twine script):
twine==1.8.1; python_version == '2.7'
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.16.3; python_version == '3.6'
ipython==7.23.1; python_version == '3.7'
ipython==8.10.0; python_version >= '3.8'

ipykernel==4.5.2; python_version == '2.7'
ipykernel==4.5.2; python_version == '3.6'
ipykernel==6.14.0; python_version == '3.7'
ipykernel==6.17.0; python_version >= '3.8'

ipython-genutils==0.2.0

ipywidgets==5.2.2; python_version == '2.7'
ipywidgets==5.2.2; 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.6'
jupyter-console==6.5.0; python_version >= '3.7'

jupyter_client==4.4.0; python_version == '2.7'
jupyter_client==6.1.12; python_version == '3.6'
jupyter_client==7.4.4; python_version == '3.7'
jupyter_client==8.0.3; python_version >= '3.8'

jupyter_core==4.2.1; python_version == '2.7'
jupyter_core==4.6.1; python_version == '3.6'
jupyter_core==4.12.0; python_version == '3.7'
jupyter_core==5.1.0; python_version >= '3.8'

jupyterlab_pygments==0.1.2; python_version == '2.7'
jupyterlab_pygments==0.1.2; python_version == '3.6'
jupyterlab_pygments==0.2.0; python_version == '3.7'
jupyterlab_pygments==0.3.0; python_version >= '3.8'

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

jupyter-server==1.24.0; python_version == '3.7'
# Safety issue requires 2.11.2. 2024-3-17
jupyter-server==2.14.1; python_version >= '3.8'

nbclassic==1.0.0; python_version >= '3.7'

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

nbconvert==5.0.0; python_version == '2.7'
nbconvert==5.0.0; python_version == '3.6'
nbconvert==6.5.1; python_version == '3.7'
nbconvert==7.7.3; python_version >= '3.8'

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

notebook==4.3.1; python_version == '2.7'
notebook==6.4.10; python_version == '3.6'
notebook==6.5.4; python_version == '3.7'
# safety issue sets new minimum 7.1.0 17  2024-3-17
notebook==7.2.2; python_version >= '3.8'

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

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

# safety vulnerability #64588, #64587 with jupyterlab < 4.0.11
# notebook 7.1.0 depends on jupyterlab<4.2 and >=4.1.1
jupyterlab==4.2.6; python_version >= '3.8'

pyrsistent==0.14.0; python_version == '2.7'
pyrsistent==0.14.0; 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.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==306; sys_platform == 'win32' and python_version >= '3.10'

# The tornado package is used by ipykernel which is used by jupyter.
tornado==4.4.2; python_version == '2.7'
tornado==6.1; python_version == '3.6'
tornado==6.2; python_version == '3.7'
tornado==6.4.2; python_version >= '3.8'

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

# Performance profiling tools
pyinstrument==3.0.1; python_version <= '3.11'
pyinstrument-cext==0.2.2; python_version <= '3.11'  # from pyinstrument
pyinstrument==4.5.3; python_version >= '3.12'  # pyinstrument-cext integrated

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.6' and python_version <= '3.7'
# Prev version pip-check-reqs==2.4.3; python_version >= '3.8'
pip-check-reqs==2.3.2; python_version >= '3.6' and python_version <= '3.7'
pip-check-reqs==2.4.3; python_version >= '3.8' and python_version <= '3.11'
pip-check-reqs==2.5.1; python_version >= '3.12'

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

# bleach is used by nbconvert and readme-renderer
bleach==3.3.0; python_version == '2.7'
bleach==3.3.0; python_version >= '3.6'

# pywinpty is used by terminado <- notebook <- jupyter
pywinpty==0.5; os_name == "nt" and python_version <= '3.6'
pywinpty==2.0.10; os_name == "nt" and python_version == '3.7'
pywinpty==2.0.12; os_name == "nt" and python_version >= '3.8' and python_version <= '3.12'
pywinpty==2.0.14; os_name == "nt" and python_version >= '3.13'

# This version caused by notebook 6.4.10 depends on terminado>=0.8.3
terminado==0.6; python_version == '2.7'
terminado==0.8.3; python_version >= '3.6'


# Dependencies to reduce backtracking time (must be consistent with dev-requirements.txt)

# jupyter-server 1.24.0 depends on anyio>=3.1.0,<4
anyio==3.7.1; python_version == '3.7'
anyio==4.4.0; python_version >= '3.8'
distlib==0.3.4; python_version <= '3.11'
distlib==0.3.7; python_version >= '3.12'
# previous version filelock==3.0.0
filelock==3.2.0; python_version <= "3.11"
filelock==3.12.2; python_version >= "3.12"
# 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.6'
gitdb==4.0.8; python_version >= '3.7'
# 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.6'
traitlets==5.6.0; python_version >= '3.7'


# Indirect dependencies for development and test that are not in dev-requirements.txt or test-requirements.txt.

alabaster==0.7.9
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 == '2.7'
attrs==22.2.0; python_version >= '3.6'
backcall==0.2.0; python_version >= '3.6'
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.6'
cffi==1.14.5; python_version <= '3.7'
cffi==1.16.0; python_version >= '3.8'
# Click used by easy-vault (8.0.2) and safety (7.1.1).
Click==7.1.1; python_version == '2.7'
Click==8.0.2; python_version >= '3.6'
clint==0.5.1
comm==0.2.2
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.6'
defusedxml==0.7.1
docopt==0.6.1
enum34==1.1.10; python_version == '2.7'
# Safety issue #52510 affected future<=0.18.2
future==0.18.3
futures==3.3.0; python_version == '2.7'
html5lib==0.999999999
id==1.5.0
imagesize==1.3.0
# importlib-resources is used by virtualenv 20.0, jsonschema 4.17
# importlib-resources 4.0.0 removed support for Python <=3.5
# importlib-resources 5.6.0 removed support for Python 3.6
# importlib-resources 6.0.0 removed support for Python 3.7
importlib-resources==3.2.1; python_version == '2.7'
importlib-resources==4.1.1; python_version == '3.6'
importlib-resources==5.6.0; python_version >= '3.7' and python_version <= '3.8'
iniconfig==1.1.1; python_version >= '3.6'
ipaddress==1.0.23; python_version == '2.7'
jedi==0.17.2; python_version >= '3.6'
Jinja2==2.8.1; python_version == '2.7'
# Jinja2 version for python 3.6 is 3.0.0 because nbconvert 6.5.1 requirment
# that changes at python 36
# Safety issue #39525 affects <2.11.3 and #54679 affects <2.10.1
Jinja2==3.0.3; python_version == '3.6'
# Safety issue #64227: Jinga2 >= ver 3.1.3. fixes vulnerability. Python >= 3.7
Jinja2==3.1.4; 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 == '2.7'
MarkupSafe==2.0.0; python_version >= '3.6'
matplotlib-inline==0.1.3; python_version >= '3.6'
mistune==0.8.1; python_version <= '3.7'
mistune==2.0.3; python_version >= '3.8'
nest-asyncio==1.5.4; python_version >= '3.6'
nltk==3.9
pandocfilters==1.4.1
parso==0.7.0; python_version >= '3.6'
pathlib2==2.3.7.post1
pexpect==4.2.1; python_version == '2.7'
# 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.5
prometheus-client==0.12.0; python_version == '2.7'
prometheus-client==0.13.1; python_version >= '3.6'
prompt-toolkit==1.0.3; python_version == '2.7'
prompt-toolkit==2.0.1; python_version == '3.6'
prompt-toolkit==3.0.30; python_version >= '3.7'
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==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.6'
rfc3986==1.4.0
rich==12.0.0; python_version >= '3.6'
scandir==1.10.0; python_version == '2.7'
Send2Trash==1.8.2
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.6'
smmap==5.0.0; python_version >= '3.7'
snowballstemmer==2.0.0
soupsieve==2.3.1; python_version >= '3.6'
stack-data==0.2.0; python_version >= '3.6'
testpath==0.3
toml==0.10.0
tomli==1.1.0; python_version == '3.6'
tomli==2.0.1; python_version >= '3.7'
tqdm==4.64.1; python_version == '3.6'
tqdm==4.66.3; python_version >= '3.7'
traceback2==1.4.0
typing==3.10.0.0; python_version == '2.7'
wcwidth==0.1.7
webencodings==0.5.1
widgetsnbextension==1.2.6; python_version == '2.7'
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 2.0.0 removed support for Python <=3.5
# zipp 3.7.0 removed support for Python 3.6
# zipp 3.16.0 removed support for Python 3.7
# importlib-metadata 4.8.3 depends on zipp>=0.5
# importlib-resources 5.6.0 depends on zipp>=3.1.0; python_version < "3.10"
zipp==1.2.0; python_version == '2.7'
zipp==3.1.0; python_version >= '3.6' and python_version <= '3.7'
zipp==3.19.1; python_version >= '3.8'
