[project]
name = "privacyforms-pdf"
version = "0.1.3"
description = "Python library to extract and fill PDF forms using pypdf"
readme = "README.md"
requires-python = ">=3.12"
authors = [{ name = "Andreas Jung", email = "info@zopyx.com" }]
dependencies = [
    "click>=8",
    "pydantic>=2",
    "pypdf>=5",
]

[project.scripts]
pdf-forms = "privacyforms_pdf.cli:main"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[dependency-groups]
dev = [
    "nox>=2026.2.9",
    "pytest>=9",
    "pytest-cov>=7",
    "ruff>=0.15",
    "ty>=0.0.21",
]

[tool.ruff]
line-length = 100
target-version = "py313"

[tool.ruff.lint]
select = [
    "E",   # pycodestyle errors
    "W",   # pycodestyle warnings
    "F",   # Pyflakes
    "I",   # isort
    "N",   # pep8-naming
    "D",   # pydocstyle
    "UP",  # pyupgrade
    "B",   # flake8-bugbear
    "C4",  # flake8-comprehensions
    "SIM", # flake8-simplify
    "TCH", # flake8-type-checking
]
ignore = ["D100", "D104"]  # Missing docstring in public module/package

[tool.ruff.lint.pydocstyle]
convention = "google"



[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = "--cov=privacyforms_pdf --cov-report=term-missing --cov-report=html --cov-fail-under=85"

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

[tool.coverage.report]
show_missing = true
skip_covered = false
