[tool.ruff] target-version = "py311" line-length = 88 ignore = [ "D107", # Missing docstring in `__init__` "D205", # 1 blank line required between summary line and description "D401", # First line of docstring should be in imperative mood: "X" "D203", # one-blank-line-before-class "D212", # multi-line-summary-second-line "PLR2004", # magic-value-comparison ] select = [ "F", # Pyflakes "E", # pycodestyle "C90", # mccabe "I", # isort "N", # pep8-naming "D", # pydocstyle "UP", # pyupgrade "ANN", # flake8-annotations "S", # flake8-bandit "BLE", # flake8-blind-except "FBT", # flake8-boolean-trap "B", # flake8-bugbear "A", # flake8-builtins "C4", # flake8-comprehensions "EM", # flake8-errmsg "ISC", # flake8-implicit-str-concat "ICN", # flake8-import-conventions "G", # flake8-logging-format "INP", # flake8-no-pep420 "PIE", # flake8-pie "T20", # flake8-print "PYI", # flake8-pyi "Q", # flake8-quotes "RSE", # flake8-raise "RET", # flake8-return "SLOT", # flake8-slots "SIM", # flake8-simplify "TID", # flake8-tidy-imports "TCH", # flake8-type-checking "ARG", # flake8-unused-arguments "PTH", # flake8-use-pathlib "TD", # flake8-todos "FIX", # flake8-fixme "ERA", # eradicate "PGH", # pygrep-hooks "PL", # Pylint "TRY", # tryceratops "FLY", # flynt "PERF", # Perflint "RUF", # Ruff-specific rules ] exclude = [ ".git", ".ruff_cache", "venv", "instances", "schema.sql" ] [tool.isort] profile = "black"