diff --git a/pyproject.toml b/pyproject.toml index 2b4fe992c5..6f28d191ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,18 +1,70 @@ [tool.ruff] -exclude=[".git","__pycache__","dist","build","test.py","tests", "venv","env",".venv",".env"] +exclude = [ + ".git", + "__pycache__", + "dist", + "build", + "test.py", + "tests", + "venv", + "env", + ".venv", + ".env", +] +src = ["../InvenTree"] [tool.ruff.lint] -select = ["A", "B", "C4", "D", "DJ", "LOG", "N", "I","S"] -ignore = ["N999", ] +select = ["A", "B", "C4", "D", "DJ", "N", "S"] +# Things that should be enabled in the future: +# - LOG +# - I + +ignore = [ + "N999", + # - N802 - function name should be lowercase + "N802", + # - N806 - variable should be lowercase + "N806", + # - N812 - lowercase imported as non-lowercase + "N812", + # - D202 - No blank lines allowed after function docstring + "D202", + # - D415 - First line should end with a period, question mark, or exclamation point + "D415", +] [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.isort] -combine-as-imports = true -section-order = ["future", "standard-library", "django", "third-party", "first-party", "local-folder" ] +split-on-trailing-comma = false +combine-as-imports = false +section-order = [ + "future", + "standard-library", + "django", + "third-party", + "first-party", + "local-folder", +] known-first-party = ["src", "plugin", "InvenTree", "common"] [tool.ruff.lint.isort.sections] "django" = ["django"] + +[tool.ruff.format] +quote-style = "double" +indent-style = "space" +skip-magic-trailing-comma = false +line-ending = "auto" + +[tool.ruff.flake8-quotes] +docstring-quotes = "double" +inline-quotes = "double" + +[tool.coverage.run] +source = "InvenTree" + +[tool.ruff.extend-per-file-ignores] +"__init__.py" = ["D104"] diff --git a/setup.cfg b/setup.cfg index 46d86e7832..95ca4635f6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,29 +8,9 @@ ignore = E722, # - C901 - function is too complex C901, - # - N802 - function name should be lowercase - # TODO (In the future, we should conform to this!) - N802, - # - N806 - variable should be lowercase - N806, - # - N812 - lowercase imported as non-lowercase - N812, - # - D202 - No blank lines allowed after function docstring - D202, - # - D415 - First line should end with a period, question mark, or exclamation point - D415, # - B009 - Do not call getattr with a constant attribute value B009 exclude = .git,__pycache__,*/migrations/*,*/lib/*,*/bin/*,*/media/*,*/static/*,InvenTree/plugins/* -per-file-ignores = - # Do not enforce docstring on __init__ - __init__.py: D104 -max-complexity = 20 -docstring-convention=google -ban-relative-imports = parents - -[coverage:run] -source = ./InvenTree [isort] src_paths=InvenTree