From c2ace79eac4f8ed58080a72b2222a820dee2ad5f Mon Sep 17 00:00:00 2001 From: CptGibbon <16000770+CptGibbon@users.noreply.github.com> Date: Sat, 4 May 2024 21:30:29 -0700 Subject: [PATCH] Use ruff as the default Python formatter in devcontainer.json (#2148) * Set default devcontainer formatter to ruff Update devcontainer.json to use charliermarsh.ruff as the default formatter. This should bring the devcontainer environment in line with the CI-enforced formatting & linting. * Remove black & pylint extensions from devcontainer.json The black & pylint extensions are no longer used, ruff is now responsible for formatting and linting. * Set source.organizeImports to "explicit" The previous setting of true is deprecated * Remove tool.black from pyproject.toml * Remove tool.pylint from pyproject.toml * Don't let ruff organize imports Leave it to isort --- .devcontainer/devcontainer.json | 9 +- pyproject.toml | 152 -------------------------------- 2 files changed, 4 insertions(+), 157 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 89737d57f..8236315d0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -36,20 +36,19 @@ "python.linting.pylintUseMinimalCheckers": false, "python.venvPath": "/venv", "[python]": { - "editor.defaultFormatter": "ms-python.black-formatter", + "editor.defaultFormatter": "charliermarsh.ruff", "editor.codeActionsOnSave": { - "source.organizeImports": true + "source.organizeImports": "explicit" }, "editor.formatOnType": true - } + }, + "ruff.organizeImports": false }, "extensions": [ "charliermarsh.ruff", "ms-azuretools.vscode-docker", - "ms-python.black-formatter", "ms-python.isort", "ms-python.mypy-type-checker", - "ms-python.pylint", "ms-python.python", "ms-python.vscode-pylance" ] diff --git a/pyproject.toml b/pyproject.toml index c1f74b846..8c2e374bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,3 @@ -[tool.black] -line-length = 100 - [tool.ruff] line-length = 100 @@ -135,155 +132,6 @@ data_file = ".cov/coverage" [tool.coverage.report] omit = ["ida_script.py", "tests/*"] -[tool.pylint.main] -# Analyse import fallback blocks. This can be used to support both Python 2 and 3 -# compatible code, which means that the block might have code that exists only in -# one or another interpreter, leading to false positives when analysed. -analyse-fallback-blocks = true - -disable = [ - "design", # TODO: disable explicit checks - - # basic - "invalid-name", - "missing-class-docstring", - "missing-function-docstring", - "missing-module-docstring", - "pointless-string-statement", # TODO: Fix these - "dangerous-default-value", # TODO: Fix these - - # classes - "arguments-renamed", - "protected-access", # TODO: Fix these - "abstract-method", # TODO: Fix these - "attribute-defined-outside-init", # TODO: Fix these - - # exceptions - "broad-except", - "raise-missing-from", - - # format - "line-too-long", - - # imports - "import-outside-toplevel", - "wrong-import-position", - "wildcard-import", # TODO: Fix these - - # lambda-expressions - "unnecessary-lambda-assignment", - - # miscellaneous - "fixme", - - # refactoring - "consider-using-f-string", # TODO: Fix these - "consider-using-with", # TODO: Fix these - "no-else-return", # TODO: Fix these - "no-else-raise", # TODO: Fix these - "no-else-continue", # TODO: Fix these - "no-else-break", # TODO: Fix these - "inconsistent-return-statements", # TODO: Fix these - "redefined-argument-from-local", - - # stdlib - "unspecified-encoding", - - # typecheck - "no-member", - "keyword-arg-before-vararg", - "assignment-from-none", # TODO: Fix these - - # variables - "possibly-unused-variable", - "redefined-outer-name", - "global-statement", - "unused-wildcard-import", - "unused-argument", # TODO: Fix these - "unused-variable", # TODO: Fix these - "undefined-loop-variable", # TODO: Fix these - "undefined-variable", # TODO: Fix these - "redefined-builtin", # TODO: Fix these -] - - -# Files or directories to be skipped. They should be base names, not paths. -ignore = ["tests", ".git"] - -# List of module names for which member attributes should not be checked (useful -# for modules/projects where namespaces are manipulated during runtime and thus -# existing member attributes cannot be deduced by static analysis). It supports -# qualified module names, as well as Unix pattern matching. -ignored-modules = ["gdb", "pt"] - -# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the -# number of processors available to use, and will cap the count on Windows to -# avoid hangs. -jobs = 0 - -# Control the amount of potential inferred values when inferring a single object. -# This can help the performance when dealing with large functions or complex, -# nested conditions. -limit-inference-results = 100 - -# Pickle collected data for later comparisons. -persistent = true - -# Minimum Python version to use for version dependent checks. Will default to the -# version used to run pylint. -py-version = "3.7" - -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages. -suggestion-mode = true - -[tool.pylint.design] -# Maximum number of arguments for function / method. -max-args = 5 - -# Maximum number of attributes for a class (see R0902). -max-attributes = 7 - -# Maximum number of boolean expressions in an if statement (see R0916). -max-bool-expr = 5 - -# Maximum number of branch for function / method body. -max-branches = 12 - -# Maximum number of locals for function / method body. -max-locals = 15 - -# Maximum number of parents for a class (see R0901). -max-parents = 7 - -# Maximum number of public methods for a class (see R0904). -max-public-methods = 20 - -# Maximum number of return / yield for function / method body. -max-returns = 6 - -# Maximum number of statements in function / method body. -max-statements = 50 - -# Minimum number of public methods for a class (see R0903). -min-public-methods = 2 - -[tool.pylint.format] -# Maximum number of lines in a module. -max-module-lines = 2500 # TODO: Reduce to 1000 - -[tool.pylint."messages control"] -# Only show warnings with the listed confidence levels. Leave empty to show all. -# Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE, UNDEFINED. -confidence = ["HIGH", "CONTROL_FLOW", "INFERENCE", "INFERENCE_FAILURE", "UNDEFINED"] - -[tool.pylint.refactoring] -# Maximum number of nested blocks for function / method body -max-nested-blocks = 6 - -[tool.pylint.reports] -output-format = "colorized" - [tool.poetry] name = "pwndbg" description = "Exploit Development and Reverse Engineering with GDB Made Easy"