# Pip requirements file for install dependencies.

# Note: The dependencies in this file will become the dependencies stated
# in the Pypi package metadata.


# Direct dependencies for install (must be consistent with minimum-constraints-install.txt)

pywbem>=1.7.2
# When using the GitHub master branch of pywbem, comment out the line above,
# activate the GitHub link based dependency below.
# In that case, some of the install tests need to be disabled by setting
# the 'PYWBEM_FROM_REPO' variable in in tests/install/test_install.sh.
# git+https://github.com/pywbem/pywbem.git@master#egg=pywbem

nocaselist>=1.0.3
nocasedict>=1.0.1
# six 1.16.0 removes the ImportWarning raised by Python 3.10
six>=1.14.0; python_version <= '3.9'
six>=1.16.0; python_version >= '3.10'
# Click 7.0 has issue #1231 on Windows which we circumvent in the test code
# Click 7.1 has a bug with output capturing
# Click 8.0 is incompatible with python <3.0. See issues #816 (python 2.7 not
#     supported) and #819 (click-repl incompatible)
# The Click requirements were copied into dev-requirements.txt in order not to
# have the safety package upgrade it. Keep them in sync.
Click>=7.1.1,<8.0; python_version == '2.7'
# Safety package requires click 8.0.2 minimum
Click>=8.0.2; python_version >= '3.6'
click-spinner>=0.1.8; python_version <= '3.11'
click-spinner>=0.1.10; python_version >= '3.12'
# click-repl 0.2 is needed for compatibility with Click 8.0.
# click-repl version 3.0 causes test failures. See issue #1312
click-repl>=0.1.6,<0.3.0; python_version == '2.7'
click-repl>=0.2,<0.3.0; python_version >= '3.6'
asciitree>=0.3.3
# tabulate 0.8.8 fixes ImportError on Python 3.10.
tabulate>=0.8.2; python_version <= '3.9'
tabulate>=0.8.8; python_version >= '3.10'

# Toposort version < 1.7 Fail with python <= 3.7
toposort>=1.6,<=1.7; python_version <= '3.7'
toposort>=1.6; python_version >= '3.8'
# psutil 5.8.0 fixes an install error on Python 3.10
psutil>=5.5.0; python_version <= '3.9'
psutil>=5.8.0; python_version >= '3.10'

# prompt-toolkit>=2.0 failed on py27 (issue #192), so it was pinned to <2.0.
#   Later, the fix for issue #224 allowed to lift that pinning.
# prompt-toolkit>=3.0 does not support py<36.
# prompt-toolkit>=3.0 may cause WinError 995 on py38 on Windows (issue #690).
prompt-toolkit>=1.0.15,<3.0.0; python_version == '2.7'
prompt-toolkit>=3.0.13; python_version >= '3.6'

# PyYAML is also pulled in by dparse and python-coveralls
# PyYAML 5.3 fixed narrow build error on Python 2.7
# PyYAML 5.3.1 addressed issue 38100 reported by safety
# PyYAML 5.2 addressed issue 38639 reported by safety
# PyYAML 5.3 has wheel archives for Python 2.7, 3.5 - 3.9
# PyYAML 5.4 has wheel archives for Python 2.7, 3.6 - 3.9
# PyYAML 6.0 has wheel archives for Python 3.6 - 3.11
# PyYAML 5.4 and 6.0.0 fails install since Cython 3 was released, see issue
#   https://github.com/yaml/pyyaml/issues/724.
PyYAML>=5.3.1; python_version <= '3.5'
PyYAML>=5.3.1,!=5.4.0,!=5.4.1; python_version >= '3.6' and python_version <= '3.11'
PyYAML>=5.3.1,!=5.4.0,!=5.4.1,!=6.0.0; python_version >= '3.12'

yamlloader>=0.5.5

# safety 2.3.5 started pinning packaging to <22.0 and requires >=21.0
packaging>=17.0; python_version == '2.7'
packaging>=21.0,<22.0; python_version >= '3.6'

# See issue #822 about issue in mock 4.0.3.
mock>=3.0.0,<4.0.0; python_version < '3.6'
mock>=3.0.0; python_version >= '3.6'


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

# Mock requires funcsigs>1;python_version<"3.3" but for unknown reasons
# Pip 9.0.1 (with minimum package levels) does not install it on MacOs on Python
# 2.7.17. The same version of Pip does install it on Linux on python 2.7.15.
funcsigs>=1.0.2; python_version == '2.7'

# Address issue that pyparsing 3.0.0b2 gets installed on py27 (used by packaging)
pyparsing>=2.3.1,<3.0.0; python_version == '2.7'
pyparsing>=2.3.1; python_version >= '3.6'

# urllib3 < 2.0.0 required for python < 3.7
# TODO: Following limits use of urllib3 <= 2.0  for python < 3.7 until issues
# about upgrade resolved. Issue #1302 updates urllib3 to version 2.0.
# Python <= 3.7 required for urllib3 <= 2.0.0
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'
