content: [project]
  name = "prov"
  dynamic = ["version"]
  description = "A library for W3C Provenance Data Model supporting PROV-JSON, PROV-XML and PROV-O (RDF)"
  readme = "README.rst"
  authors = [
      { name = "Trung Dong Huynh", email = "trungdong@donggiang.com" }
  ]
  keywords = ["provenance", "graph", "model", "PROV", "PROV-DM", "PROV-JSON", "W3C", "PROV-XML", "PROV-N", "PROV-O", "RDF"]
  license = "MIT"
  license-files = ["LICENSE"]
  classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Developers",
      "Intended Audience :: Information Technology",
      "Natural Language :: English",
      "Operating System :: OS Independent",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
      "Programming Language :: Python :: 3 :: Only",
      "Programming Language :: Python :: Implementation :: CPython",
      "Programming Language :: Python :: Implementation :: PyPy",
      "Topic :: Scientific/Engineering :: Information Analysis",
      "Topic :: Security",
      "Topic :: System :: Logging",
  ]
  requires-python = ">=3.9"
  dependencies = [
      "networkx>=2.0",
      # Supporting graphic outputs (e.g. PNG, SVG, PDF) - a local graphviz is required
      "pydot>=1.2.0",
      "python-dateutil>=2.2",  # TODO: is this really needed?
  ]
  
  [project.optional-dependencies]
  rdf = [
      "rdflib>=4.2.1,<7",
  ]
  xml = [
      "lxml>=3.3.5",
  ]
  
  [project.scripts]
  prov-convert = "prov.scripts.convert:main"
  prov-compare = "prov.scripts.compare:main"
  
  [project.urls]
  Homepage = "https://github.com/trungdong/prov"
  Documentation = "https://prov.readthedocs.io"
  Repository = "https://github.com/trungdong/prov"
  Issues = "https://github.com/trungdong/prov/issues"
  Changelog = "https://prov.readthedocs.io/en/latest/history.html"
  
  [build-system]
  requires = ["setuptools>=40.8.0", "wheel"]  # PEP 508 specifications.
  build-backend = "setuptools.build_meta"
  
  [tool.setuptools.dynamic]
  version = {attr = "prov.__version__"}
  
  [dependency-groups]
  dev = [
      "black>=24.10.0",
      "bumpversion>=0.6.0",
      "coverage>=7.6.10",
      "flake8>=7.1.1",
      "setuptools>=75.8.0",
      "sphinx>=8.1.3; python_version >= '3.11'",
      "sphinx-rtd-theme",
      "tox>=4.23.2",
      "wheel>=0.45.1",
  ]
  
  [tool.black]
  line-length = 88
  target-version = ["py39", "py310", "py311", "py312"]
  include = '\.pyi?$'
  exclude = '''
  (
    /(
        \.eggs         # exclude a few common directories in the
      | \.git          # root of the project
      | \.mypy_cache
      | \.tox
      | build
      | dist
    )/
  )
  '''
  
  [tool.pylint.messages_control]
  disable = "C0330, C0326"
  
  [tool.pylint.format]
  max-line-length = "88"
  
  [tool.mypy]
  python_version = 3.12
  exclude = ["prov/tests/*"]
  
  [[tool.mypy.overrides]]
  module = "prov.*"
  disallow_untyped_defs = true
  check_untyped_defs = true
  