# Ruff configuration #################### exclude = [ ".eggs", ".git", ".pyenv", ".pytest_cache", ".ruff_cache", ".venv", ".vscode", "__pypackages__", "_build", "build", "dist", "netbox/project-static/**", "node_modules", "site-packages", "venv", ] # Enforce line length and indent-width line-length = 120 indent-width = 4 # Ignores anything in .gitignore respect-gitignore = true # Always generate Python 3.12-compatible code target-version = "py312" [lint] extend-select = [ "E1", # pycodestyle errors: indentation-related (e.g., unexpected/missing indent) "E2", # pycodestyle errors: whitespace-related (e.g., missing whitespace, extra spaces) "E3", # pycodestyle errors: blank lines / spacing around definitions "E501", # pycodestyle: line too long (enforced with `line-length` above) "W", # pycodestyle warnings (various style warnings, often whitespace/newlines) "I", # import sorting (isort-equivalent) "RET", # return semantics (flake8-return family: consistent/explicit returns; remove redundant else/assign before return) "UP", # pyupgrade: modernize syntax for your target Python (e.g., f-strings, built-in generics, newer stdlib idioms) ] ignore = [ "F403", # pyflakes: `from ... import *` used; unable to detect undefined names "F405", # pyflakes: name may be undefined or defined from star imports "RET504", # return: unnecessary assignment before `return` (e.g., `x = expr; return x` -> `return expr`) "UP032", # pyupgrade: prefer f-strings over `str.format(...)` ] preview = true [lint.isort] known-first-party = [ "account", "circuits", "core", "dcim", "extras", "ipam", "netbox", "tenancy", "users", "utilities", "virtualization", "vpn", "wireless", ] [lint.per-file-ignores] "template_code.py" = ["E501"] "netbox/netbox/graphql/filter_lookups.py" = ["UP046"] # Strawberry typing: keep `Generic[T]` for now "netbox/netbox/graphql/scalars.py" = ["UP007"] # Strawberry scalar typing: `Union[...]` required [format] # Use single quotes for strings. quote-style = "single" # Indent with spaces, rather than tabs. indent-style = "space" # Enforce UNIX line ending line-ending = "lf"