[tool.ruff]
exclude = [
  "deps",
  "tools/cpplint.py",
  "tools/gyp",
  "tools/inspector_protocol",
  "tools/eslint/node_modules",
  "tools/github_reporter"
]
line-length = 172
target-version = "py38"

[tool.ruff.lint]
select = [
  "C90",    # McCabe cyclomatic complexity
  "E",      # pycodestyle
  "F",      # Pyflakes
  "ICN",    # flake8-import-conventions
  "INT",    # flake8-gettext
  "PLC",    # Pylint conventions
  "PLE",    # Pylint errors
  "PLR09",  # Pylint refactoring: max-args, max-branches, max returns, max-statements
  "PYI",    # flake8-pyi
  "RSE",    # flake8-raise
  "RUF",    # Ruff-specific rules
  "T10",    # flake8-debugger
  "TCH",    # flake8-type-checking
  "TID",    # flake8-tidy-imports
  "W",      # pycodestyle
  "YTT",    # flake8-2020
]
ignore = [
  "E401",
  "E402",
  "E7",
  "PLC1901",
  "RUF005",
  "RUF100",
]

[tool.ruff.lint.mccabe]
max-complexity = 100

[tool.ruff.lint.pylint]
max-args = 12
max-branches = 110
max-returns = 12
max-statements = 289