target-version = "py313"
line-length = 300

[lint]
select = [
  "F",     # pyflakes
  "E", "W", # pycodestyle
  "I",     # isort
  "N",     # pep8-naming
  "UP",    # pyupgrade
  "B",     # flake8-bugbear
  "SIM",   # flake8-simplify
  "C4",    # flake8-comprehensions
  "C90",   # mccabe
  "ARG",   # flake8-unused-arguments
  "T20",   # flake8-print
  "TID",   # flake8-tidy-imports (TID252 = prefer absolute imports for same-package)
  "RUF",   # ruff-specific
]
ignore = [
  "E501",
  "D",
  "ANN",
]

[lint.mccabe]
max-complexity = 10

[lint.isort]
known-first-party = ["src"]
force-sort-within-sections = true
combine-as-imports = true
extra-standard-library = ["pytest"]

[lint.per-file-ignores]
"tests/*" = ["T20", "TID252"]
"src/scripts/*" = ["TID252"]
