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

[project]
name = "generate-test-fixtures"
version = "0.1.0"
description = """\
  Deterministic fixture generator producing track-changes / revisions / diff / security documents with ground-truth \
  JSON sidecars for kreuzberg integration tests.\
  """
readme = "README.md"
license = { text = "MIT OR Apache-2.0" }
authors = [ { name = "Kreuzberg Contributors", email = "hello@kreuzberg.dev" } ]
requires-python = ">=3.11"
classifiers = [
  "Development Status :: 4 - Beta",
  "Intended Audience :: Developers",
  "License :: OSI Approved :: Apache Software License",
  "License :: OSI Approved :: MIT License",
  "Operating System :: OS Independent",
  "Programming Language :: Python :: 3 :: Only",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3.13",
  "Programming Language :: Python :: 3.14",
  "Topic :: Software Development :: Testing",
]
dependencies = [
  "odfpy>=1.4.1",
  "openpyxl>=3.1.2",
  "pikepdf>=8",
  "python-docx>=1.1",
  "python-pptx>=0.6.23",
  "reportlab>=4",
]
optional-dependencies.dev = [ "pytest>=7.4", "ruff>=0.4" ]
scripts.generate-test-fixtures = "generate_test_fixtures.__main__:main"

[tool.hatch]
build.targets.wheel.packages = [ "src/generate_test_fixtures" ]

[tool.ruff]
target-version = "py311"
line-length = 120
lint.select = [ "B", "E", "F", "I", "RUF", "UP", "W" ]
lint.ignore = [ "E501" ]

[tool.pytest]
ini_options.minversion = "7.0"
ini_options.testpaths = [ "tests" ]
ini_options.python_files = "test_*.py"
