57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
import subprocess
|
|
import sys
|
|
|
|
|
|
linter_settings = {
|
|
"pylint": {
|
|
"args": ["--reports=n", "--output-format=json"],
|
|
},
|
|
"flake8": {
|
|
"args": ["--format", "%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s"],
|
|
},
|
|
"bandit": {
|
|
"args": [
|
|
"-f",
|
|
"custom",
|
|
"--msg-template",
|
|
"{line},{col},{severity},{test_id}:{msg}",
|
|
"-n",
|
|
"-1",
|
|
],
|
|
},
|
|
"mypy": {"args": []},
|
|
"prospector": {
|
|
"args": ["--absolute-paths", "--output-format=json"],
|
|
},
|
|
"pycodestyle": {
|
|
"args": ["--format", "%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s"],
|
|
},
|
|
"pydocstyle": {
|
|
"args": [],
|
|
},
|
|
"pylama": {"args": ["--format=parsable"]},
|
|
}
|
|
|
|
|
|
def main():
|
|
invoke = sys.argv[1]
|
|
if invoke == "-m":
|
|
linter = sys.argv[2]
|
|
args = (
|
|
[sys.executable, "-m", linter]
|
|
+ linter_settings[linter]["args"]
|
|
+ sys.argv[3:]
|
|
)
|
|
else:
|
|
linter = sys.argv[2]
|
|
args = [sys.argv[3]] + linter_settings[linter]["args"] + sys.argv[4:]
|
|
|
|
if hasattr(subprocess, "run"):
|
|
subprocess.run(args, encoding="utf-8", stdout=sys.stdout, stderr=sys.stderr)
|
|
else:
|
|
subprocess.call(args, stdout=sys.stdout, stderr=sys.stderr)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|