#[tool.ruff] lint.select = [ 'ALL' ] lint.ignore = [ 'ANN', # Type annotations (lots of work.) 'FBT', # Boolean trap is bullshit. 'C90', 'PLR0911', 'PLR0915', 'PLR0913', # Code complexity measures are bullshit. 'Q003', 'D205', # Format conflict 'TCH', # Microoptimization at the cost of readability 'TID252', # I like relative imports 'D407', 'D413', # Weird documentation stuff 'D100', 'D101', 'D102', 'D103', 'D104', 'D105', 'D106', 'D107', 'D300', 'D401', # Missing docstrings (lots of work) 'TD002', 'TD003', 'TD004', 'FIX', # Who cares about TODO standards? "E501", 'PLR0912', 'PTH123', 'F405', 'E402', 'PLW0603', 'SIM102', 'TRY002', 'TRY003', ] # Autofix lint.fixable = [ 'SIM', 'C', 'Q', 'UP035', 'UP004', 'UP032', 'UP006', 'UP007', 'I001', 'F401', 'COM812', 'B011', 'PLR1722', 'PLR0402', 'S101', ] lint.unfixable = ['SIM102', 'SIM114'] # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", ] # Same as Black. line-length = 88 # Allow unused variables when underscore-prefixed. lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" # Assume Python 3.10. target-version = "py310" [lint.flake8-quotes] inline-quotes = "single" multiline-quotes = "double" docstring-quotes = "double" [format] quote-style = "single" indent-style = "space" docstring-code-format = true [lint.per-file-ignores] "test/*" = [ "S101", # Test Asserts "T201", # Debug prints "PLR2004", # magic-value-comparison 'SLF001', # Allow access to private members ]