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
pull/2120/head
CptGibbon 2 years ago committed by GitHub
parent 5d744513bb
commit c2ace79eac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -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"
]

@ -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"

Loading…
Cancel
Save