[project] name = "Plane" version = "0.24.0" description = "Open-source project management that unlocks customer value" [tool.ruff] # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", "**/migrations/*", ] # Same as Black. line-length = 120 indent-width = 4 [tool.ruff.format] # Use double quotes for strings. quote-style = "double" # Indent with spaces, rather than tabs. indent-style = "space" # Respect magic trailing commas. # skip-magic-trailing-comma = true # Automatically detect the appropriate line ending. line-ending = "auto" [tool.ruff.lint] # Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default. select = ["E", "F"] ignore = [] # Allow autofix for all enabled rules (when `--fix`) is provided. fixable = ["ALL"] unfixable = [] # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" [tool.ruff.lint.pep8-naming] # Allow lowercase variables like "id" classmethod-decorators = ["classmethod", "validator", "root_validator"] [tool.ruff.lint.per-file-ignores] # Ignore specific rules for tests "tests/*" = ["E402", "F401", "F811"] # Ignore imported but unused in __init__.py files "__init__.py" = ["F401"] [tool.ruff.lint.mccabe] # Unlike Flake8, default to a complexity level of 10. max-complexity = 10 [tool.ruff.lint.isort] combine-as-imports = true detect-same-package = true force-wrap-aliases = true known-first-party = ["plane"] known-third-party = ["rest_framework"] relative-imports-order = "closest-to-furthest" [tool.ruff.lint.flake8-tidy-imports] ban-relative-imports = "parents" [tool.ruff.lint.pycodestyle] ignore-overlong-task-comments = true max-doc-length = 88 [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.pylint] max-args = 8 max-statements = 50