content: [tool.ruff]
  target-version = "py313"
  
  lint.select = ["ALL"]
  
  lint.ignore = [
      "ANN401",   # Dynamically typed expressions (typing.Any) are disallowed
      "COM812",   # Trailing comma missing
      "D203",     # 1 blank line required before class docstring
      "D213",     # Multi-line docstring summary should start at the second line
      "EM101",    # Exception must not use a string literal, assign to variable first
      "EM102",    # Exception must not use an f-string literal, assign to variable first
      "FBT001",   # Boolean positional arg in function definition
      "FBT002",   # Boolean default positional argument in function definition
      "FBT003",   # Boolean positional value in function call
      "PLR0913",  # Too many arguments in function definition
      "PLR0915",  # Too many statements
      "TC002",    # Move third-party import into a type-checking block
      "TC003",    # Move standard library import into a type-checking block
      "TC006",    # Add quotes to type expression in `typing.cast()`
      "TRY003",   # Avoid specifying long messages outside the exception class
      "TRY400",   # Use `logging.exception` instead of `logging.error`
  ]
  
  exclude = [
      "custom_components/blitzortung/geohash.py",
  ]
  
  [tool.ruff.lint.mccabe]
  max-complexity = 25
  