content: [project]
  name = "terasim-monorepo"
  version = "0.2.0"
  description = "TeraSim Monorepo - Traffic simulation platform for autonomous vehicle testing"
  authors = [
      {name = "Haowei Sun", email = "printfplus@outlook.com"},
  ]
  readme = "README.md"
  license = "Apache-2.0"
  requires-python = ">=3.10,<3.13"
  dependencies = [
      "terasim-cosmos",
  ]
  
  [tool.uv.workspace]
  members = [
      "packages/terasim",
      "packages/terasim-nde-nade",
      "packages/terasim-service",
      "packages/terasim-envgen",
      "packages/terasim-datazoo",
      "packages/terasim-vis",
      "packages/terasim-cosmos"
  ]
  
  [tool.uv.sources]
  # Use workspace packages during development
  terasim = { workspace = true }
  terasim-nde-nade = { workspace = true }
  terasim-service = { workspace = true }
  terasim-envgen = { workspace = true }
  terasim-datazoo = { workspace = true }
  terasim-vis = { workspace = true }
  terasim-cosmos = { workspace = true }
  
  [dependency-groups]
  dev = [
      "pytest>=7.4.0",
      "pytest-cov>=4.1.0",
      "black>=23.7.0",
      "ruff>=0.1.0",
      "mypy>=1.5.1",
      "isort>=5.12.0"
  ]
  
  [tool.black]
  line-length = 100
  target-version = ['py310']
  include = '\.pyi?$'
  
  [tool.ruff]
  line-length = 100
  target-version = "py310"
  select = ["E", "F", "W", "C90", "I"]
  
  [tool.mypy]
  python_version = "3.10"
  warn_return_any = true
  warn_unused_configs = true
  disallow_untyped_defs = true
  
  [tool.pytest.ini_options]
  testpaths = ["tests"]
  python_files = ["test_*.py"]
  addopts = "-v --cov=terasim --cov=terasim_envgen --cov=terasim_service --cov=terasim_nde_nade --cov-report=term-missing --cov-report=html --cov-config=pyproject.toml"
  markers = [
      "integration: marks tests as integration tests (deselect with '-m \"not integration\"')",
      "requires_sumo: marks tests as requiring SUMO installation",
      "requires_gui: marks tests as requiring GUI (skipped in CI)",
      "slow: marks tests as slow running"
  ]
  
  [tool.coverage.run]
  source = ["packages/"]
  omit = [
      "*/tests/*",
      "*/test_*",
      "*/__pycache__/*",
      "*/migrations/*",
      "*/venv/*",
      "*/.venv/*"
  ]
  
  [tool.coverage.report]
  exclude_lines = [
      "pragma: no cover",
      "def __repr__",
      "if self.debug:",
      "if settings.DEBUG",
      "raise AssertionError",
      "raise NotImplementedError",
      "if 0:",
      "if __name__ == .__main__.:"
  ]
  