[project]
name = "senzing-typedef"
version = "0.2.17"
authors = [{ name = "senzing", email = "support@senzing.com" }]
description = "Helper functions for working with Senzing JSON"
readme = "README.md"
requires-python = ">=3.10"
classifiers = [
  "Programming Language :: Python :: 3",
  "Operating System :: OS Independent",
]
dependencies = [
  "senzing==4.0.4",
  "senzing-core==1.0.3",
]
license = "Apache-2.0"
license-files = [
  "LICENSE",
  ".github/senzing-corporate-contributor-license-agreement.pdf",
  ".github/senzing-individual-contributor-license-agreement.pdf",
]

[project.urls]
bugtracker = "https://github.com/senzing-garage/sz-sdk-json-type-definition/issues"
changelog = "https://github.com/senzing-garage/sz-sdk-json-type-definition/blob/main/CHANGELOG.md"
source = "https://github.com/senzing-garage/sz-sdk-json-type-definition"

[project.entry-points."console.scripts"]
template_python = "template_python.main_entry:main"

[build-system]
requires = ["setuptools>=80", "setuptools-scm>=8", "wheel"]
build-backend = "setuptools.build_meta"

[dependency-groups]
all = [
  { include-group = "development" },
  { include-group = "documentation" },
  { include-group = "lint" },
  { include-group = "test" },
]
development = [
  "build==1.3.0",
  "coverage==7.10.7",
  "cryptography==46.0.2",
  "psutil==7.1.0",
  "pytest-cov==7.0.0",
  "pytest-schema==0.1.2",
  "pytest==8.4.2",
  "twine==6.2.0",
  "virtualenv==20.34.0",
  "wheel==0.46.1",
]
documentation = [
  "autodocsumm==0.2.14; python_version > '3.11'",
  "myst_parser==4.0.1; python_version > '3.11'",
  "sphinx-autodoc-typehints==3.1.0; python_version > '3.11'",
  "sphinx-gallery==0.19.0; python_version > '3.11'",
  "sphinx-jinja2-compat==0.4.1; python_version > '3.11'",
  "sphinx-prompt==1.9.0; python_version > '3.11'",
  "sphinx-rtd-theme==3.0.2; python_version > '3.11'",
  "sphinx-tabs==3.4.*; python_version > '3.11'",
  "sphinx-toolbox==4.0.0; python_version > '3.11'",
  "sphinx==8.2.3; python_version > '3.11'",
  "sphinxcontrib-applehelp==2.0.0; python_version > '3.11'",
  "sphinxcontrib-devhelp==2.0.0; python_version > '3.11'",
  "sphinxcontrib-htmlhelp==2.1.0; python_version > '3.11'",
  "sphinxcontrib-jquery==4.1; python_version > '3.11'",
  "sphinxcontrib-jsmath==1.0.1; python_version > '3.11'",
  "sphinxcontrib-qthelp==2.0.0; python_version > '3.11'",
  "sphinxcontrib-serializinghtml==2.0.0; python_version > '3.11'",
  "sphinxext-remoteliteralinclude==0.6.0; python_version > '3.11'",
]
lint = [
  "bandit==1.8.6",
  "black==25.9.0",
  "flake8==7.3.0",
  "fpvs==0.3.0",
  "isort==6.1.0",
  "mypy==1.18.2",
  "pylint-per-file-ignores==3.0.0",
  "pylint==3.3.9",
]
test = [
  "coverage==7.10.7",
  "pytest==8.4.2",
]

[tool.setuptools.packages.find]
where = ["python"]

[tool.setuptools_scm]

[tool.bandit]
skips = ["B101"]

[tool.black]
line-length = 120

[tool.flake8]
extend-ignore = ["E203", "E501", "E704", "W503"]
max-line-length = 120

[tool.isort]
profile = "black"
src_paths = ["python"]

[[tool.mypy.overrides]]
module = "senzing_abstract.szengineflags.*"
ignore_missing_imports = "true"
warn_unused_ignores = "false"

[[tool.mypy.overrides]]
module = "pytest_schema.*"
ignore_missing_imports = "true"

[tool.pylint]
ignored-argument-names = "args|kwargs"
max-locals = 30
min-similarity-lines = 15
disable = [
  "broad-exception-caught",
  "eval-used",
  "f-string-without-interpolation",
  "global-statement",
  "line-too-long",
  "too-many-branches",
  "too-many-lines",
  "too-many-nested-blocks",
  "too-many-return-statements",
]

good-names = ["sz-sdk-json-type-definition"]
ignore = ["__init__.py", "docs/source/conf.py"]
notes = ["FIXME"]
