content: [project]
  name = "modern-di-workspace"
  requires-python = ">=3.10,<4"
  version = "0"
  
  [dependency-groups]
  dev = [
      "pytest",
      "pytest-cov",
      "pytest-asyncio",
      "ruff",
      "mypy",
      "typing-extensions",
  ]
  
  [tool.uv]
  package = false
  
  [tool.uv.workspace]
  members = ["packages/*"]
  
  [tool.uv.sources]
  modern-di = { workspace = true }
  
  [tool.mypy]
  python_version = "3.10"
  strict = true
  
  [tool.ruff]
  fix = true
  unsafe-fixes = true
  line-length = 120
  target-version = "py310"
  extend-exclude = ["docs"]
  
  [tool.ruff.lint]
  select = ["ALL"]
  ignore = [
      "D1",     # allow missing docstrings
      "S101",   # allow asserts
      "TCH",    # ignore flake8-type-checking
      "FBT",    # allow boolean args
      "D203",   # "one-blank-line-before-class" conflicting with D211
      "D213",   # "multi-line-summary-second-line" conflicting with D212
      "COM812", # flake8-commas "Trailing comma missing"
      "ISC001", # flake8-implicit-str-concat
  ]
  isort.lines-after-imports = 2
  isort.no-lines-before = ["standard-library", "local-folder"]
  
  [tool.pytest.ini_options]
  addopts = "--cov=. --cov-report term-missing"
  asyncio_mode = "auto"
  asyncio_default_fixture_loop_scope = "function"
  
  [tool.coverage]
  run.concurrency = ["thread"]
  report.exclude_also = ["if typing.TYPE_CHECKING:"]
  