[lint]
select = [
  "F", "E4", "E7", "E9",       # Defaults
  "W",                         # pycodestyle warnings
  "B",                         # Flake8 bugbear rules
  "PD",                        # Pandas vet rules
  "NPY",                       # NumPy specific rules
  "NPY201",                    # NumPy 2.0 deprecation warnings
  "RUF",                       # Ruff specific rules
  "PERF1", "PERF2",            # Performance lints from Perflint
  "E101",                      # Mixed spaces and tabs
  "E501",                      # Line too long
  "C901",                      # Complex structure
  "I001",                      # Import block un-sorted / un-formatted
  "I002",                      # Missing required import
  "N804",                      # First argument of class method should be cls
  "N805"                       # First argument of method should be self
]
ignore = [
  "W191",                 # Ignore due to conflict with ruff formatter
  "E111",                 # Ignore due to conflict with ruff formatter
  "E114",                 # Ignore due to conflict with ruff formatter
  "E117",                 # Ignore due to conflict with ruff formatter
  "D206",                 # Ignore due to conflict with ruff formatter
  "D300",                 # Ignore due to conflict with ruff formatter
  "Q000",                 # Ignore due to conflict with ruff formatter
  "Q001",                 # Ignore due to conflict with ruff formatter
  "Q002",                 # Ignore due to conflict with ruff formatter
  "Q003",                 # Ignore due to conflict with ruff formatter
  "COM812",               # Ignore due to conflict with ruff formatter
  "COM819",               # Ignore due to conflict with ruff formatter
  "ISC001",               # Ignore due to conflict with ruff formatter
  "ISC002"                # Ignore due to conflict with ruff formatter
]
unfixable = ["W", "B", "PD", "NPY", "RUF", "E101", "E501", "C901", "I001", "I002"]

[format]
docstring-code-format = false