# Pip requirements file for Ansible zhmc modules development dependencies.
#
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.

# Make sure that the package versions in minimum-constraints.txt are also
# the minimum versions required in requirements.txt and dev-requirements.txt.


# Runtime dependencies:
-r requirements.txt


# Direct dependencies:

# Unit test (imports into testcases):
# pytest 5.0.0 has removed support for Python < 3.5
# pytest 4.3.1 solves an issue on Python 3 with minimum package levels
# pytest==6.0.0 causes pylint to report "not-callable" issues
# pytest>=6.0.0 causes pylint to report "abstract-method" issues
# For both, see https://github.com/pytest-dev/pytest/issues/7591
pytest>=4.3.1,<5.0.0; python_version < '3.5'
pytest>=4.3.1,<6.0.0; python_version >= '3.5' and python_version <= '3.6'
pytest>=4.4.0,<6.0.0; python_version >= '3.7'
# Pluggy 0.12.0 has a bug causing pytest plugins to fail loading on py38
pluggy>=0.7.1; python_version >= '2.7' and python_version <= '3.6'
pluggy>=0.13.0; python_version >= '3.7'

# Unit test (no imports, invoked via py.test script):

# Coverage reporting (no imports, invoked via coveralls script):
# We exclude Python 3.4 from coverage testing and reporting.
# coverage 5.0 has removed support for py34
coverage>=5.0; python_version == '2.7' or python_version >= '3.5'
pytest-cov>=2.7.0; python_version == '2.7' or python_version >= '3.5'
# coveralls 2.0 has removed support for Python 2.7 and 3.4
git+https://github.com/andy-maier/coveralls-python.git@andy/add-py27#egg=coveralls; python_version == '2.7'
coveralls>=2.1.2; python_version >= '3.5'
# PyYAML is pulled in by python-coveralls and is specified in requirements.txt

# Sphinx (no imports, invoked via sphinx-build script):
Sphinx>=1.7.6 # BSD

# Flake8 (no imports, invoked via flake8 script):
flake8>=3.2.1 # MIT

# Safety CI by pyup.io
# safety 1.9.0 removed support for Python 2.7 and 3.4 (and now also enforces that)
safety>=1.8.7,<1.9.0; python_version <= '3.4'
safety>=1.9.0; python_version >= '3.5'
# dparse 0.5.0 has an infinite recursion issue on Python 2.7,
#   see https://github.com/pyupio/dparse/issues/46
dparse>=0.4.1,<0.5.0; python_version == '2.7'
dparse>=0.4.1; python_version == '3.4'
dparse>=0.5.1; python_version >= '3.5'

# Twine (no imports, invoked via twine script):
twine>=1.8.1 # Apache-2.0

# Ansible validate-modules (no imports, invoked via validate-modules script)
mock>=2.0.0 # BSD, from Ansible validate-modules
voluptuous>=0.10.2 # BSD, from Ansible validate-modules


# Indirect dependencies (normally commented out, only listed to document their license):

# alabaster # BSD, from Sphinx
# atomicwrites # MIT, from pytest
# attrs # MIT, from pytest
# Babel # BSD, from Sphinx
# bleach # Apache, from readme-renderer -> twine
# configparser # MIT, from flake8 for py<3.2
# docutils # public domain | Python | 2-Clause BSD | GPL 3, from Sphinx
# funcsigs # Apache, from mock for py<3.3
# imagesize # MIT, from Sphinx
# mccabe # MIT, from flake8
# more-itertools # MIT, from pytest
# packaging # BSD | Apache 2.0, from Sphinx
# pathlib2 # MIT, from pytest for py<3.6
# pkginfo # MIT, from twine
# py # MIT, from pytest
# pycodestyle # MIT, from flake8
# pyflakes # MIT, from flake8
# Pygments # BSD, from Sphinx
# pyparsing # MIT, from Sphinx
# readme-renderer # Apache 2.0, from twine
# requests-toolbelt # Apache 2.0, from twine
# scandir # BSD, from pathlib2 for py<3.5 -> pytest for py<3.6
# snowballstemmer # BSD, from Sphinx
# sphinxcontrib-websupport # BSD, from Sphinx
# tqdm # MPL 2.0, MIT, from twine>=1.9.1
# typing # PSFL, from Sphinx>=1.6.1 for py<3.5
# webencodings # BSD, from bleach -> readme-renderer -> twine
