# Ruff configuration for linting and formatting [tool.ruff] # Target Python version target-version = "py312" # Line length line-length = 100 # Enable rules [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "B", # bugbear "C4", # flake8-comprehensions "UP", # pyupgrade ] # Ignore specific rules [tool.ruff.lint.ignore] E501 = "Line too long" # Handled by formatter [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] # Allow unused imports in __init__.py "tests/**" = ["S101"] # Allow assert in tests