content: [project]
  name = "geti-telemetry-tools"
  version = "1.0.3"
  description = "Configuration for common loggers and telemetry in the Geti platform"
  requires-python = ">=3.10, <3.13"
  
  [project.optional-dependencies]
  b3 = ["opentelemetry-propagator-b3==1.21.0"]
  fastapi =[
      "fastapi~=0.115",
      "opentelemetry-instrumentation-fastapi==0.45b0",
  ]
  grpc =["grpcio>=1.51.1,<2.0","opentelemetry-instrumentation-grpc[instruments]==0.45b0"]
  jaeger =["opentelemetry-propagator-jaeger==1.21.0"]
  kafka =["confluent-kafka >= 1.8.2, <= 2.3.0", "opentelemetry-instrumentation-confluent-kafka==0.45b0"]
  logger =["opentelemetry-instrumentation-logging==0.45b0"]
  telemetry =[
      "opentelemetry-api==1.24.0",
      "opentelemetry-exporter-otlp-proto-http==1.24.0",
      "opentelemetry-exporter-otlp-proto-grpc==1.24.0",
      "opentelemetry-sdk==1.24.0"
  ]
  
  [dependency-groups]
  dev = [
      "pytest~=8.3",
      "mypy~=1.15",
      "ruff~=0.11.2",
      "pre-commit~=4.1",
      "pytest-freezegun",
      "testfixtures",
      "httpx~=0.23",
      "confluent-kafka~=2.3",
      "geti-telemetry-tools[b3,fastapi,grpc,jaeger,kafka,logger,telemetry]",
  ]
  
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/geti_logger_tools", "src/geti_telemetry_tools"]
  
  [tool.ruff]
  target-version = "py310"
  line-length = 120
  
  [tool.ruff.lint]
  select = [
      "ARG", "E", "F", "I", "N", "UP", "YTT", "ASYNC", "S", "COM", "C4", "FA", "PIE", "PYI", "Q", "RSE", "RET", "SIM",
      "TID", "TC", "PL", "RUF", "C90", "D103", "ANN001", "ANN201", "ANN205", "FAST"
  ]
  ignore = [
      "N801", "N805", "N806", "N807", "N818", "COM812", "RET503", "SIM108", "SIM105", "PLR2004",
      "RUF010", "TC001", "RUF012"
  ]
  fixable = ["ALL"]
  
  [tool.ruff.lint.per-file-ignores]
  "*test*.py" = ["S", "ARG001", "ARG002", "ANN001", "ANN201", "D103"]
  
  [tool.ruff.lint.isort]
  split-on-trailing-comma = false
  
  [tool.ruff.lint.pylint]
  max-args = 7
  
  [[tool.mypy.overrides]]
  module = "testfixtures.*"
  ignore_missing_imports = true
  
  [[tool.mypy.overrides]]
  module = "confluent_kafka.*"
  ignore_missing_imports = true
  