# Pip constraints file for test 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.2
pytest==8.4.0; python_version == '3.9'
pytest==9.0.3; 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==48.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

# 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==1.5.0
decorator==4.0.11

# Lxml
lxml==6.1.0

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

# Virtualenv
virtualenv==21.3.0
python-discovery==1.2.2


# 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.8.1
safety-schemas==0.0.16
dparse==0.6.4
ruamel.yaml==0.19.1
Authlib==1.6.12
marshmallow==3.26.2
pydantic==2.12.0
pydantic_core==2.41.1
typer==0.16.0
typer-cli==0.16.0
typer-slim==0.16.0
truststore==0.10.4; python_version >= '3.10'

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

# Tox
tox==3.21.0

# Sphinx (no imports, invoked via sphinx-build script):
Sphinx==7.2.4
docutils==0.18.1
sphinx-git==10.1.1
GitPython==3.1.59
Pygments==2.20.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.9
sphinxcontrib-websupport==1.2.4
autodocsumm==0.2.12
Babel==2.11.0
# Sphinx 8.2.0 started using roman-numerals-py
roman-numerals-py==4.1.0
roman-numerals==4.1.0

# PyLint (no imports, invoked via pylint script):
pylint==3.3.3; python_version == '3.9'
pylint==4.0.4; python_version >= '3.10'
astroid==3.3.8; python_version == '3.9'
astroid==4.0.2; python_version >= '3.10'
lazy-object-proxy==1.4.3
wrapt==1.17.0
platformdirs==4.3.6
isort==5.0.9
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 Notebook (no imports, invoked via jupyter script):
# TODO: Re-enable for Python 3.13 on Windows once pywin32 install issue is solved, see
#       https://github.com/mhammond/pywin32/issues/2367
notebook==7.5.6; sys_platform != 'win32' or python_version <= '3.12'
ipykernel==6.31.0; sys_platform != 'win32' or python_version <= '3.12'
ipython-genutils==0.2.0; sys_platform != 'win32' or python_version <= '3.12'
ipython==8.18.1; sys_platform != 'win32' or python_version <= '3.12'
ipywidgets==8.1.8; sys_platform != 'win32' or python_version <= '3.12'
jupyter_client==8.6.3; sys_platform != 'win32' or python_version <= '3.12'
jupyter-console==6.6.3; sys_platform != 'win32' or python_version <= '3.12'
jupyter_core==5.8.1; sys_platform != 'win32' or python_version <= '3.12'
jupyter_server==2.18.2; python_version == '3.9' and (sys_platform != 'win32' or python_version <= '3.12')
jupyter_server==2.20.0; python_version >= '3.10' and (sys_platform != 'win32' or python_version <= '3.12')
jupyter==1.1.1; sys_platform != 'win32' or python_version <= '3.12'
jupyterlab_pygments==0.3.0; sys_platform != 'win32' or python_version <= '3.12'
jupyterlab_server==2.28.0; sys_platform != 'win32' or python_version <= '3.12'
jupyterlab_widgets==3.0.16; sys_platform != 'win32' or python_version <= '3.12'
jupyterlab==4.5.10; sys_platform != 'win32' or python_version <= '3.12'
nbclient==0.10.2; sys_platform != 'win32' or python_version <= '3.12'
nbconvert==7.17.1; sys_platform != 'win32' or python_version <= '3.12'
nbformat==5.10.4; sys_platform != 'win32' or python_version <= '3.12'
notebook_shim==0.2.4; sys_platform != 'win32' or python_version <= '3.12'

# Pywin32 is used (at least?) by jupyter.
pywin32==303; sys_platform == 'win32' and python_version <= '3.11'
# TODO: Re-enable for Python 3.13 once pywin32 install issue is solved, see
#       https://github.com/mhammond/pywin32/issues/2367
pywin32==306; sys_platform == 'win32' and python_version == '3.12'

# pywinpty is used by terminado <- notebook <- jupyter
pywinpty==2.0.12; sys_platform == 'win32' and python_version <= '3.12'
pywinpty==3.0.2; sys_platform == 'win32' and python_version >= '3.13'

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


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

anyio==4.12.1; python_version == '3.9'
anyio==4.13.0; python_version >= '3.10'
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.2
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
# bleach is used by nbconvert (Jupyter notebook)
bleach==6.2.0; python_version == '3.9'
bleach==6.4.0; python_version >= '3.10'
cffi==2.0.0
Click==8.0.2
clint==0.5.1
comm==0.2.2
debugpy==1.6.5
defusedxml==0.7.1
docopt==0.6.1
filelock==3.16.1; python_version == '3.9'
filelock==3.24.2; python_version >= '3.10'
future==0.18.3
html5lib==0.999999999
httpx==0.28.1
imagesize==1.3.0
# importlib-resources is used by 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==2.0.0; python_version <= '3.12'
MarkupSafe==3.0.0; python_version >= '3.13'
matplotlib-inline==0.1.3
mistune==3.3.0
nest-asyncio==1.5.4
nltk==3.9.2; python_version == '3.9'
nltk==3.10.0; python_version >= '3.10'
pandocfilters==1.4.1
parso==0.7.0
pathlib2==2.3.7.post1
pexpect==4.4.0
pickleshare==0.7.5
prometheus-client==0.13.1
prompt-toolkit==3.0.41
psutil==6.1.0
ptyprocess==0.5.1
py==1.11.0
pycparser==2.21
pyparsing==3.0.7
pyrsistent==0.19.1
python-dateutil==2.8.2
pytz==2019.1
pyzmq==27.0.1
qtconsole==5.7.2
QtPy==2.0.1
rfc3986==1.4.0
rich==12.0.0
Send2Trash==1.8.2
sh==2.2.4
simplegeneric==0.8.1
# smmap is used by gitdb
smmap==5.0.0
snowballstemmer==2.0.0
soupsieve==2.8.4
stack-data==0.2.0
tenacity==8.5.0
terminado==0.8.3
testpath==0.3
toml==0.10.0
tomli==2.0.1
tornado==6.5.7
tqdm==4.66.3
traceback2==1.4.0
wcwidth==0.1.7
webencodings==0.5.1
widgetsnbextension==4.0.14
zipp==3.19.1
