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

[tool.coverage.run]
branch = true
source =["jsonschema_path"]

[tool.coverage.xml]
output = "reports/coverage.xml"

[tool.mypy]
files = "jsonschema_path"
strict = true

[[tool.mypy.overrides]]
module = "jsonschema_specifications"
ignore_missing_imports = true

[tool.poetry]
name = "jsonschema-path"
version = "0.3.3"
description = "JSONSchema Spec with object-oriented paths"
authors = ["Artur Maciag <maciag.artur@gmail.com>"]
license = "Apache-2.0"
readme = "README.rst"
repository = "https://github.com/p1c2u/jsonschema-path"
keywords = ["jsonschema", "swagger", "spec"]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Topic :: Software Development :: Libraries :: Python Modules",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Software Development :: Libraries",
]

[tool.poetry.dependencies]
pathable = "^0.4.1"
python = "^3.8.0"
PyYAML = ">=5.1"
requests = {version = "^2.31.0", optional = true}
referencing = ">=0.28.0,<0.36.0"

[tool.poetry.dev-dependencies]
pre-commit = "*"
pytest = "^8.2.1"
pytest-flake8 = "=1.1.1"
pytest-cov = "^5.0.0"
isort = "^5.13.2"
black = "^24.4.0"
flynt = "1.0.1"
mypy = "^1.9.0"
types-PyYAML = "^6.0.12"
types-requests = "^2.31.0"
typing-extensions = "^4.10.0"  # required by responses. See https://github.com/p1c2u/jsonschema-path/issues/44
responses = "^0.25.0"
deptry = "^0.14.2"
pyflakes = "^2.5.0"
bump2version = "^1.0.1"

[tool.pytest.ini_options]
addopts = """
--capture=no
--verbose
--showlocals
--junitxml=reports/junit.xml
--cov=jsonschema_path
--cov-report=term-missing
--cov-report=xml
"""

[tool.black]
line-length = 79

[tool.isort]
profile = "black"
line_length = 79
force_single_line = true
