[tool.poetry]
name = "cv-analysis-service"
version = "2.30.0"
description = ""
authors = ["Isaac Riley <isaac.riley@knecon.com>"]
readme = "README.md"
packages = [{ include = "cv_analysis", from = "src" }]

[tool.poetry.dependencies]
python = ">=3.10,<3.11"
envyaml = "^1.10.211231"
Flask = "^2.1.1"
waitress = "^2.0.0"
funcy = "^2"
numpy = "^1.22.3"
opencv-python-headless = "^4.5.5.62"
pdf2image = "^1.16.0"
matplotlib = "^3.5.1"
imutils = "^0.5.4"
iteration-utilities = "^0.11.0"
dvc = "^2.34.0"
dvc-ssh = "^2.20.0"
scipy = "^1.8.0"
coverage = "^5.5"
dependency-check = "^0.6.0"
lorem-text = "^2.1"
PyMuPDF = "^1.19.6"
pyinfra = { version = "3.4.2", source = "gitlab-research" }
kn-utils = { version = ">=0.4.0", source = "gitlab-research" }
pdf2img = { version = "0.7.0", source = "gitlab-red" }
dvc-azure = "^2.21.2"
pymupdf = "^1.24.1"
types-pillow = "^10.2.0.20240423"

[tool.poetry.group.test.dependencies]
pytest = "^7.0.1"
pylint = "^3.1"


[tool.poetry.group.dev.dependencies]
ipython = "^8.21.0"
mypy = "^1.10.0"
pylint = "^3.1.0"
pre-commit = "^3.7.0"
semver = "^3.0.2"
cyclonedx-bom = "^4.4.3"

[tool.poetry.group.docs.dependencies]
sphinx = "^7.2.6"
recommonmark = "^0.7.1"
readthedocs-sphinx-ext = "^2.2.5"
rinohtype = "^0.5.4"
rst2pdf = "^0.101"
pydata-sphinx-theme = "^0.15.2"
# sphinxcontrib-openapi = "^0.8.4"
sphinx-autodoc-typehints = "^2.1.0"


[tool.pytest.ini_options]
testpaths = ["test"]
addopts = "--ignore=data"

[[tool.poetry.source]]
name = "PyPI"
priority = "primary"

[[tool.poetry.source]]
name = "gitlab-research"
url = "https://gitlab.knecon.com/api/v4/groups/19/-/packages/pypi/simple"
priority = "explicit"

[[tool.poetry.source]]
name = "gitlab-red"
url = "https://gitlab.knecon.com/api/v4/groups/12/-/packages/pypi/simple"
priority = "explicit"

[tool.pylint]
max-line-length = 120
docstring-min-length = 4
extension-pkg-whitelist = ["cv2"]
extension-pkg-allow-list = ["cv2"]

[tool.black]
line-length = 120

[tool.isort]
profile = "black"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
