# Pip constraints file for install dependencies.
#
# This file specifies constraints that match the minimum versions specified in
# the requirement file for package installation (requirements.txt). They are
# used for example when setting up test environments with the minimum versions
# of any dependent packages. This includes base dependencies
# (pip+setuptools+wheel) that are needed for setting up a minimum version
# environment, but are not specified in requirements.txt.


# Base dependencies (not in requirements.txt)

# * 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 22.0 dropped support for Python 3.6.
pip==19.3.1; python_version == '2.7'
pip==21.3.1; python_version == '3.6'
pip==23.3; python_version >= '3.7'

# 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 == '2.7'
setuptools==59.6.0; python_version == '3.6'
setuptools==65.5.1; python_version >= '3.7' and python_version <= '3.11'
setuptools==66.1.0; python_version >= '3.12'

# 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.6'
wheel==0.38.1; python_version >= '3.7'


# Direct dependencies for install (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.6'
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.6'
requests==2.31.0; python_version >= '3.7'
yamlloader==0.5.5


# Indirect dependencies for install that are needed for some reason (must be consistent with requirements.txt)

# urllib3 >= 2.0.0 minimum python == '3.7'
# 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.26.18,<2.0.0; python_version == '2.7'
urllib3==1.26.18,<2.0.0; python_version == '3.6'
urllib3==1.26.18; python_version >= '3.7'

certifi==2019.11.28; python_version == '2.7'
certifi==2023.07.22; python_version >= '3.6'

# requests 2.31 requires idna>=2.5,<4
# anyio 3.1.0 depends on idna>=2.8
idna==2.8


# All other indirect dependencies for install that are not in requirements.txt

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

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

# 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==4.0.0; python_version >= '3.6'
