content: [build-system]
  requires = ["maturin>=1.7,<2.0"]
  build-backend = "maturin"
  
  [project]
  name = "torchft"
  requires-python = ">=3.8"
  classifiers = [
      "Programming Language :: Rust",
      "Programming Language :: Python :: Implementation :: CPython",
      "Programming Language :: Python :: Implementation :: PyPy",
  ]
  dynamic = ["version"]
  readme = "README.md"
  dependencies = [
      "torch>=2.7",
      "opentelemetry-exporter-otlp-proto-http>=1.37.0",
      "opentelemetry-sdk>=1.37.0",
      "opentelemetry-api>=1.37.0",
  ]
  
  [project.urls]
  Documentation = "https://docs.pytorch.org/torchft"
  Repository = "https://github.com/pytorch/torchft"
  Issues = "https://github.com/pytorch/torchft/issues"
  
  [project.optional-dependencies]
  dev = [
      "pytest==8.3.4",
      "pytest-timeout",
      "parameterized",
      "expecttest",
      "numpy",
      "torchx-nightly",
      "lintrunner",
      "lintrunner-adapters",
  ]
  
  [tool.maturin]
  features = ["pyo3/extension-module"]
  module-name = "torchft._torchft"
  
  [project.scripts]
  torchft_lighthouse = "torchft._torchft:lighthouse_main"
  
  [tool.isort]
  extra_standard_library = ["typing_extensions"]
  skip_gitignore = true
  atomic = true
  profile = "black"
  indent = 4
  line_length = 88
  lines_after_imports = 2
  multi_line_output = 3
  include_trailing_comma = true
  combine_as_imports = true
  
  [tool.black]
  target-version = ["py312"]
  include = '\.pyi?$'
  
  [tool.usort]
  first_party_detection = false
  
  [tool.ufmt]
  formatter = "ruff-api"
  
  [tool.pytest.ini_options]
  log_format = "%(asctime)s %(levelname)s %(message)s"
  log_date_format = "%Y-%m-%d %H:%M:%S"
  log_level = "INFO"
  timeout = 60
  timeout_method = "thread"
  