content: [project]
  name = "py-uds"
  description = "UDS (Unified Diagnostic Services) protocol handler."
  requires-python = ">=3.9"
  readme = "README.rst"
  license = "MIT"
  license-files = ["LICENSE"]
  classifiers = [
      "Development Status :: 5 - Production/Stable",
      "Intended Audience :: Developers",
      "Intended Audience :: Education",
      "Intended Audience :: Information Technology",
      "Intended Audience :: Telecommunications Industry",
      "Natural Language :: English",
      "Operating System :: OS Independent",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3 :: Only",
      "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",
      "Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator",
      "Topic :: Software Development :: Embedded Systems",
      "Topic :: System :: Monitoring",
      "Topic :: System :: Networking",
  ]
  keywords = [
      "uds",
      "unified-diagnostic-services",
      "automotive",
      "on-board-diagnostic",
      "obd",
      "obd2",
      "vehicle-diagnostic",
      "iso14229",
      "iso-14229",
      "iso15765",
      "iso-15765",
  ]
  authors = [
      {name="Maciej Dąbrowski", email="maciej.dabrowski@software-quality.pl"},
      {name="UDS Package Development", email="uds-package-development@googlegroups.com"},
  ]
  maintainers = [
      {name="Maciej Dąbrowski", email="maciej.dabrowski@software-quality.pl"},
      {name="UDS Package Development", email="uds-package-development@googlegroups.com"},
  ]
  dependencies = [
      "aenum >= 3.0.0",
      "python-can == 4.*"
  ]
  dynamic = ["version"]
  
  
  [project.urls]
  "Homepage" = "https://github.com/mdabrowski1990/uds"
  "User Documentation" = "https://uds.readthedocs.io"
  "Repository" = "https://github.com/mdabrowski1990/uds"
  "Issues Tracking System" = "https://github.com/mdabrowski1990/uds/issues"
  "Releases and Changelogs" = "https://github.com/mdabrowski1990/uds/releases"
  "Security Policy" = "https://github.com/mdabrowski1990/uds/security/policy"
  "PyPI" = "https://pypi.org/project/py-uds/"
  "Wiki" = "https://github.com/mdabrowski1990/uds/wiki"
  "Code Download" = "https://github.com/mdabrowski1990/uds/archive/refs/heads/main.zip"
  
  
  [project.optional-dependencies]
  test = [
      "mock == 5.*",
      "pytest == 8.*",
      "pytest-cov",
      "pytest-asyncio",
  ]
  static-code-analysis = [
      "prospector == 1.17.1",
      "mypy == 1.16.1",
      "vulture == 2.14",
      "bandit == 1.8.5",
      "pyroma == 5.0",
  ]
  dependency-scan = [
      "pip-audit == 2.9.0",
  ]
  sorting-imports = [
      "isort == 6.0.1"
  ]
  docs = [
      "sphinx",
      "sphinx-autoapi",
      "sphinx-rtd-theme",
      "tomli",
  ]
  docs-checks = [
      "doc8 == 1.1.1",
  ]
  
  
  [build-system]
  requires = [
      "setuptools >= 77.0.0",
      "wheel"
  ]
  build-backend = "setuptools.build_meta"
  
  
  [tool.setuptools.dynamic]
  version = {attr = "uds.__version__"}
  
  
  [tool.setuptools.package-data]
  "*" = [
      "*.md",
      "*.rst",
      "*.txt",
      "*.toml"
  ]
  docs = [
      "source/*.rst",
      "source/pages/*.rst",
      "source/*.png",
      "source/*.drawio",
      "source/*.tgn",
      "source/*.md",
  ]
  
  
  [tool.setuptools.packages.find]
  include = ["uds*"]
  
  
  [tool.pytest.ini_options]
  minversion = "8.0"
  markers = [
      "integration: Software integration tests.",
      "performance: Performance (non-functional) tests."
  ]
  testpaths = [
      "tests/software_tests",
      "tests/system_tests",
  ]
  filterwarnings = "ignore:::.*uds*"
  asyncio_mode = "strict"
  
  
  [tool.isort]
  src_paths = ["uds"]
  line_length = 120
  use_parentheses = true
  include_trailing_comma = true
  force_grid_wrap = 0
  multi_line_output = 3
  
  
  [tool.doc8]
  max-line-length = 120
  ignore = ["D004"]
  ignore-path-errors = [
      "docs\\source\\pages\\knowledge_base\\addressing.rst;D001",  # tables
      "docs\\source\\pages\\knowledge_base\\service.rst;D001",  # tables
      "docs\\source\\pages\\user_guide\\message_translation.rst;D001",  # long reference
  ]