[tool.ruff] exclude = [ ".git", "__pycache__", "dist", "build", "test.py", "tests", "venv", "env", ".venv", ".env", "src/backend/plugins/*", ] src = ["src/backend/InvenTree"] # line-length = 120 [tool.ruff.extend-per-file-ignores] "__init__.py" = ["D104"] [tool.ruff.lint] select = ["A", "B", "C4", "D", "I", "N"] # Things that should be enabled in the future: # - LOG # - DJ # for Django stuff # - S # for security stuff (bandit) ignore = [ "N999", # - N802 - function name should be lowercase "N802", # - N806 - variable should be lowercase "N806", # - N812 - lowercase imported as non-lowercase "N812", # - D417 Missing argument descriptions in the docstring "D417", # TODO These should be followed up and fixed # - B904 Within an `except` clause, raise exceptions "B904", # Remove fast "A001", "A002","A003","B018" ] [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.isort] split-on-trailing-comma = false combine-as-imports = false section-order = [ "future", "standard-library", "django", "third-party", "first-party", "local-folder", ] [tool.ruff.lint.isort.sections] "django" = ["django"] [tool.ruff.format] quote-style = "single" indent-style = "space" skip-magic-trailing-comma = true line-ending = "auto" [tool.uv.pip] python-version = "3.9" no-strip-extras=true generate-hashes=true [tool.coverage.run] source = ["src/backend/InvenTree", "InvenTree"] [tool.djlint] ignore = "D018,H006,H008,H020,H021,H023,H025,H030,H031,T002" [tool.isort] src_paths=["src/backend/InvenTree", ] skip_glob ="*/migrations/*.py" known_django="django" sections=["FUTURE","STDLIB","DJANGO","THIRDPARTY","FIRSTPARTY","LOCALFOLDER"] [tool.codespell] ignore-words-list = ["assertIn","SME"]