[tool.mypy]
python_version = "3.12"
pretty = true
warn_redundant_casts = true
disallow_untyped_calls = true
disallow_untyped_defs = true
no_implicit_optional = true
exclude = "clan_cli.nixpkgs"

[tool.ruff]
target-version = "py311"
line-length = 88
lint.select = [
  "A",
  "ANN",
  "ASYNC",
  "B",
  "C4",
  "DTZ",
  "E",
  "EM",
  "F",
  "FA",
  "I",
  "ICN",
  "ISC",
  "LOG",
  "N",
  "PIE",
  "PT",
  "PTH",
  "PYI",
  "Q",
  "RET",
  "RSE",
  "RUF",
  "SIM",
  "SLF",
  "SLOT",
  "T10",
  "TID",
  "TRY",
  "U",
  "W",
  "YTT",
]
lint.ignore = [
  "A003",
  # A005 Module `inspect` shadows a Python standard-library module
  # We might actually want to fix this.
  "A005",
  "ANN401",
  "TRY400",
  "E402",
  "E501",
  "E731",
  "PT001",
  "PT023",
  "RET504",
  "SIM102",
  "SIM108",
  "SIM112",
  "ISC001",
]
