content: target-version = "py312"
  
  [lint]
  select = [
    "B0",     # bugbear (all B0* checks enabled by default)
    "B904",   # bugbear (Within an except clause, raise exceptions with raise ... from err)
    "B905",   # bugbear (zip() without an explicit strict= parameter set.)
    "E",      # pycodestyles
    "W",      # pycodestyles
    "F",      # pyflakes
    "FURB",   # refurb
    "I",      # isort
    "PERF",   # Perflint
    "PGH",    # pygrep-hooks
    "PLC",    # pylint conventions
    "PLE",    # pylint errors
    "PLR",    # pylint refactor
    "PTH",    # Use pathlib
    "RUF",    # Ruff rules
    "TRY",    # Exception related lints
    "UP",     # pyupgrade
  ]
  ignore = [
    "E402",  # module import not at top of file
    "E501", # line too long
    "PLR0912", # too many branches
    "PLR0915", # too many statements
    "PLR2004", # Magic value used in comparison
    "TRY003", # Avoid specifying long messages outside the exception class
    "UP038",  # Use X | Y in isinstance check instead of (X, Y)
    "PLR0911", # too many return statements
    "PLC0415", # `import` should be at the top-level of a file
  ]
  
  [lint.per-file-ignores]
  # Want to preserve compatibility for old Python versions in tools directory so
  # disable pyupgrade. Oldest supported version is currently 3.9.
  "tools/*" = ["UP"]
  