content: [tool.ruff]
  line-length = 120
  format.preview = true
  format.docstring-code-line-length = 100
  format.docstring-code-format = true
  lint.select = [
    "ALL",
  ]
  lint.ignore = [
    "ANN101", # no type annotation for self
    "ANN401", # allow Any as type annotation
    "COM812", # Conflict with formatter
    "CPY",    # No copyright statements
    "D203",   # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
    "D212",   # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
    "DOC",    # no good support
    "ISC001", # Conflict with formatter
    "S104",   # Possible binding to all interface
  ]
  lint.per-file-ignores."**/tests/**/*.py" = [
    "D",       # don't care about documentation in tests
    "FBT",     # don't care about booleans as positional arguments in tests
    "INP001",  # no implicit namespace
    "PLC2701", # private import
    "PLR0913", # any number of arguments in tests
    "PLR0917", # any number of arguments in tests
    "PLR2004", # Magic value used in comparison, consider replacing with a constant variable
    "S101",    # asserts allowed in tests...
    "S603",    # `subprocess` call: check for execution of untrusted input
  ]
  lint.per-file-ignores."tasks/**.py" = [
    "D",      # don't care about documentation in tests
    "INP001", # is not a namespace
    "T201",   # allow print
  ]
  lint.isort = { known-first-party = [
    "pyproject_fmt",
  ], required-imports = [
    "from __future__ import annotations",
  ] }
  lint.preview = true
  
  [tool.codespell]
  builtin = "clear,usage,en-GB_to_en-US"
  count = true
  ignore-words = "ignore-words.txt"
  write-changes = true
  