lint: Generalize --skip arg and move logic to zulint/command.

This commit is contained in:
Aman Agrawal 2019-06-18 22:42:54 +05:30 committed by Tim Abbott
parent 995b357cde
commit 6457c1f7c6
2 changed files with 11 additions and 12 deletions

View File

@ -90,15 +90,11 @@ def run():
linter_config.external_linter('templates', ['tools/check-templates'], ['handlebars', 'html']) linter_config.external_linter('templates', ['tools/check-templates'], ['handlebars', 'html'])
linter_config.external_linter('swagger', ['node', 'tools/check-swagger'], ['yaml']) linter_config.external_linter('swagger', ['node', 'tools/check-swagger'], ['yaml'])
linter_config.external_linter('shellcheck', ['shellcheck', '-x'], ['sh']) linter_config.external_linter('shellcheck', ['shellcheck', '-x'], ['sh'])
if 'mypy' not in args.skip: command = ['tools/run-mypy']
command = ['tools/run-mypy'] if args.force:
if args.force: command.append('--force')
command.append('--force') linter_config.external_linter('mypy', command, ['py'], pass_targets=False)
linter_config.external_linter('mypy', command, ['py'], pass_targets=False) linter_config.external_linter('gitlint', ['tools/commit-message-lint'])
# Disabled check for imperative mood until it is stabilized
if 'gitlint' not in args.skip:
linter_config.external_linter('gitlint', ['tools/commit-message-lint'])
@linter_config.lint @linter_config.lint
def custom_py(): def custom_py():
@ -135,7 +131,7 @@ def run():
failed = check_pep8(list(python_part2)) failed = check_pep8(list(python_part2))
return 1 if failed else 0 return 1 if failed else 0
linter_config.do_lint(only=args.only) linter_config.do_lint(skip=args.skip, only=args.only)
if __name__ == '__main__': if __name__ == '__main__':
run() run()

View File

@ -111,10 +111,13 @@ class LinterConfig:
self.lint_functions[name] = run_linter self.lint_functions[name] = run_linter
def do_lint(self, only=[]): def do_lint(self, only=[], skip=[]):
# type: (List[str]) -> None # type: (List[str], List[str]) -> None
assert not only or not skip, "Only one of --only or --skip can be used at once."
if only: if only:
self.lint_functions = {linter: self.lint_functions[linter] for linter in only} self.lint_functions = {linter: self.lint_functions[linter] for linter in only}
for linter in skip:
del self.lint_functions[linter]
failed = run_parallel(self.lint_functions) failed = run_parallel(self.lint_functions)
sys.exit(1 if failed else 0) sys.exit(1 if failed else 0)