# Pip requirements file for development dependencies.


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

# Six
six>=1.16.0

# PEP517 package builder, used in Makefile
build>=1.0.0
# build requires virtualenv.cli_run which was added in virtualenv 20.1
virtualenv>=20.36.1
pyproject-hooks>=1.1.0

# Change log
towncrier>=22.8.0

# Safety CI by pyup.io
# safety 3.6.1 fixes the issue with typer >=0.17.0, see https://github.com/pyupio/safety/issues/778
# pydantic 2.8.0 fixes an install issue on Python 3.13.
safety>=3.6.1
safety-schemas>=0.0.14
dparse>=0.6.4
# ruamel.yaml is used by safety and is covered in requirements.txt
click>=8.0.2
Authlib>=1.3.2; python_version == '3.8'
Authlib>=1.6.12; python_version >= '3.9'
marshmallow>=3.15.0; python_version == '3.8'
marshmallow>=3.26.2; python_version >= '3.9'
pydantic>=2.8.0
pydantic_core>=2.20.0
# safety 3.6.1 depends on typer>=0.16.0
typer>=0.16.0
typer-cli>=0.16.0
typer-slim>=0.16.0
# safety 3.4.0 depends on psutil~=6.1.0
psutil~=6.1.0

# Bandit checker
bandit>=1.7.8
# PyYAML is used by bandit and is covered in requirements.txt

# Unit test (imports into testcases):
pytest>=8.3.5; python_version == '3.8'
pytest>=8.4.0; python_version == '3.9'
pytest>=9.0.3; python_version >= '3.10'
# For versions of importlib-metadata that are in Python, see https://pypi.org/project/importlib-metadata/
# importlib-metadata 8.5.0 is the last version supporting Python 3.8
importlib-metadata>=8.5.0; python_version == '3.8'
importlib-metadata>=8.7.0; python_version >= '3.9'
colorama>=0.4.6

# packaging is used by pytest, pip-check-reqs, sphinx
packaging>=24.1

# Coverage reporting (no imports, invoked via coveralls script):
# coveralls versions 4.0.0/4.0.1 have increased their pinning of coverage to <8,
#   but they have also added a constraint for Python to <3.13. Due to that
#   Python pinning, we need to use the older coverage and coveralls versions on
#   Python>=3.13.
# Note: The earlier repetition of pinnings to avoid pip backtracking no longer
#       seems to be needed.
coverage>=7.6.1; python_version == '3.8'
coverage>=7.8.0; python_version >= '3.9' and python_version <= '3.12'
coverage>=6.5.0; python_version >= '3.13'
pytest-cov>=2.7.0
coveralls>=4.0.1; python_version <= '3.12'
coveralls>=3.3.0; python_version >= '3.13'

# Flake8 and dependents (no imports, invoked via flake8 script):
flake8>=6.1.0
mccabe>=0.7.0
pycodestyle>=2.11.0
pyflakes>=3.1.0
entrypoints>=0.3.0

# Ruff checker (no imports, invoked via ruff script):
ruff>=0.3.5

# PyLint (no imports, invoked via pylint script)
pylint>=3.0.1; python_version == '3.8'
pylint>=3.3.1; python_version >= '3.9'
astroid>=3.0.1; python_version == '3.8'
astroid>=3.3.7; python_version >= '3.9'
lazy-object-proxy>=1.4.3
wrapt>=1.15
# platformdirs is also used by tox
platformdirs>=4.1.0
# isort 4.3.8 fixes an issue with py310 and works on py310 (Note that isort 5.10.0 has official support for py310)
isort>=4.3.8
tomlkit>=0.10.1
dill>=0.3.7

# Sphinx (no imports, invoked via sphinx-build script):
# Sphinx 7.2.0 started requiring Python>=3.9
Sphinx>=7.1.0; python_version == '3.8'
Sphinx>=7.2.0; python_version >= '3.9'
# Sphinx 7.1.0 pins docutils to <0.21
docutils>=0.20.1
sphinx-git>=10.1.1
GitPython>=3.1.50
Pygments>=2.19.2; python_version == '3.8'
Pygments>=2.20.0; python_version >= '3.9'
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

# Package dependency management tools (not used by any make rules)
pipdeptree>=2.24.0
# pip-check-reqs 2.4.3 fixes a speed issue on Python 3.11 and requires pip>=21.2.4
# pip-check-reqs 2.5.0 dropped support for py38
# pip-check-reqs 2.5.0 has issue https://github.com/r1chardj0n3s/pip-check-reqs/issues/143
pip-check-reqs>=2.4.3,!=2.5.0; python_version == '3.8'
pip-check-reqs>=2.5.1; python_version >= '3.9'
