# 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.


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

# six
six==1.14.0; python_version <= '3.9'
six==1.16.0; python_version >= '3.10'

# Change log
towncrier==22.8.0
incremental==22.10.0
click-default-group==1.2.4

# Unit test (imports into testcases):
packaging==24.1
pytest==4.6.0; python_version <= '3.9'
pytest==6.2.5; python_version >= '3.10'
testfixtures==6.9.0
colorama==0.4.5
# FormEncode is used for xml comparisons in unit test
FormEncode==2.1.1

# Easy-server packages
easy-vault==0.7.0
easy-server==0.8.0
pytest-easy-server==0.8.0
cryptography==44.0.1
keyring==18.0.0

# jsonschema 4.18.0 required by jupyter-events 0.9.1
jsonschema==4.18.0

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

importlib-metadata==4.8.3

# zoneinfo is part of Python starting with Python 3.9
backports.zoneinfo==0.2.1; python_version == '3.8'
# tzdata is needed by zoneinfo on systems with no timezone database (e.g. Windows)
tzdata==2024.1; sys_platform == 'win32'

# Unit test (indirect dependencies):
pluggy==0.13.0
decorator==4.0.11

# Lxml
lxml==4.6.2; 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'
lxml==5.3.0; python_version >= '3.13'

# Coverage reporting (no imports, invoked via coveralls script):
coverage==6.5.0
pytest-cov==4.0.0
coveralls==3.3.0

# Virtualenv
virtualenv==20.26.6


# 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==1.1.1

# Cythonize
Cython==3.0.0

# Vendorize
vendorize==0.3.0

more-itertools==4.0.0

# Safety CI by pyup.io
safety==3.6.1
safety-schemas==0.0.14
dparse==0.6.4
ruamel.yaml==0.17.21
click==8.0.2
Authlib==1.3.2; python_version == '3.8'
Authlib==1.6.5; python_version >= '3.9'
marshmallow==3.15.0
pydantic==2.8.0
pydantic_core==2.20.0
typer==0.16.0
typer-cli==0.16.0
typer-slim==0.16.0
psutil==6.1.0
filelock==3.16.1

# The following used by safety and Sphinx
Levenshtein==0.25.1

# 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
sphinx-git==10.1.1
GitPython==3.1.41
Pygments==2.15.0
sphinx-rtd-theme==2.0.0
sphinxcontrib-applehelp==1.0.4
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.1
sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5; python_version == '3.8'
sphinxcontrib-serializinghtml==1.1.9; python_version >= '3.9'
sphinxcontrib-websupport==1.2.4
autodocsumm==0.2.12
Babel==2.11.0

# PyLint (no imports, invoked via pylint script):
pylint==3.0.1; python_version == '3.8'
pylint==3.3.3; python_version >= '3.9'
astroid==3.0.1; python_version == '3.8'
astroid==3.3.8; python_version >= '3.9'
lazy-object-proxy==1.4.3
wrapt==1.17.0
platformdirs==4.1.0
isort==4.3.8
tomlkit==0.10.1
dill==0.3.7

# Flake8 and dependents (no imports, invoked via flake8 script):
flake8==7.0.0
mccabe==0.7.0
pycodestyle==2.11.0
pyflakes==3.2.0

entrypoints==0.3.0

# Ruff checker
ruff==0.3.5

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

jupyter==1.0.0
ipython==8.10.0
ipykernel==6.17.0
ipython-genutils==0.2.0
ipywidgets==8.0.0
jupyter-console==6.5.0
jupyter_client==8.0.3
jupyter_core==5.1.0
jupyterlab_pygments==0.3.0
jupyterlab-widgets==3.0.3
jupyter-server==2.14.1
nbclassic==1.0.0
nbclient==0.8.0
nbconvert==7.7.3
nbformat==5.9.0
notebook==7.2.2
notebook-shim==0.2.3
jupyterlab-server==2.27.1
jupyterlab==4.2.6

pyrsistent==0.19.1

# Pywin32 is used (at least?) by jupyter.
pywin32==227; sys_platform == 'win32' and python_version <= '3.9'
pywin32==306; sys_platform == 'win32' and python_version >= '3.10' and python_version <= '3.12'
pywin32==307; sys_platform == 'win32' and python_version >= '3.13'

# The tornado package is used by ipykernel which is used by jupyter.
tornado==6.4.2; python_version <= '3.8'
tornado==6.5; python_version >= '3.9'

# 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.7.2; python_version >= '3.12'  # pyinstrument-cext integrated

# Package dependency management tools
pipdeptree==2.24.0
pip-check-reqs==2.4.3; python_version <= '3.11'
pip-check-reqs==2.5.1; python_version >= '3.12'

# notebook 6.4.10 depends on pyzmq>=17
# pyzmq 26.1.0 added wheel archives for Python 3.13
pyzmq==26.1.0

# bleach is used by nbconvert
bleach==3.3.0

# pywinpty is used by terminado <- notebook <- jupyter
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'

terminado==0.8.3


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

anyio==4.4.0
distlib==0.3.7
gitdb==4.0.8
traitlets==5.6.0


# 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
argon2-cffi-bindings==21.2.0
args==0.1.0
asttokens==2.0.4
attrs==22.2.0
backcall==0.2.0
beautifulsoup4==4.10.0
cffi==1.17.0
# Click used by easy-vault (8.0.2) and safety (7.1.1).
Click==8.0.2
clint==0.5.1
comm==0.2.2
debugpy==1.5.1
defusedxml==0.7.1
docopt==0.6.1
future==0.18.3
html5lib==0.999999999
httpx==0.28.1
imagesize==1.3.0
# importlib-resources is used by jsonschema 4.17+ on py<=3.8, jsonschema-specifications 2023.12.1 on py<=3.8, jupyterlab 4.2.6 on py<=3.8, towncrier 23.6+ on py<=3.9
importlib-resources==5.6.0; python_version <= '3.9'
iniconfig==1.1.1
jedi==0.17.2
Jinja2==3.1.6
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==2.0.0; python_version >= '3.8' and python_version <= '3.12'
MarkupSafe==3.0.0; python_version >= '3.13'
matplotlib-inline==0.1.3
mistune==2.0.3
nest-asyncio==1.5.4
nltk==3.9.1
pandocfilters==1.4.1
parso==0.7.0
pathlib2==2.3.7.post1
# ipython 7.23.1 depends on pexpect>4.3, sys_platform != "win32"
pexpect==4.4.0
pickleshare==0.7.5
prometheus-client==0.13.1
prompt-toolkit==3.0.30
ptyprocess==0.5.1
py==1.11.0
pycparser==2.21
pyparsing==3.0.7
python-dateutil==2.8.2
# Babel==2.10.0 depends on pytz>=2015.7
pytz==2019.1
qtconsole==4.2.1
QtPy==2.0.1
rfc3986==1.4.0
rich==12.0.0
Send2Trash==1.8.2
sh==1.12.14
simplegeneric==0.8.1
# smmap is used by gitdb
smmap==5.0.0
snowballstemmer==2.0.0
soupsieve==2.3.1
stack-data==0.2.0
tenacity==8.5.0
testpath==0.3
toml==0.10.0
tomli==2.0.1
tqdm==4.66.3
traceback2==1.4.0
wcwidth==0.1.7
webencodings==0.5.1
widgetsnbextension==4.0.0
# 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==3.19.1
