tools: Add pep8 linter.
This commit adds the tools/lint script to run the pep8 linter as well as modifies .travis.yml to run the linter in Travis.
This commit is contained in:
parent
c1275fded6
commit
1c8d359546
2 changed files with 37 additions and 1 deletions
36
tools/lint
Executable file
36
tools/lint
Executable file
|
@ -0,0 +1,36 @@
|
|||
#! /usr/bin/env python
|
||||
|
||||
from pep8 import check_pep8
|
||||
from server_lib import lister
|
||||
|
||||
import sys
|
||||
import optparse
|
||||
from typing import cast, Callable, Dict, Iterator, List
|
||||
|
||||
EXCLUDED_FILES = [
|
||||
# This is an external file that doesn't comply with our codestyle
|
||||
'integrations/perforce/git_p4.py',
|
||||
]
|
||||
|
||||
def lint_all(args, options):
|
||||
|
||||
by_lang = cast(Dict[str, List[str]],
|
||||
lister.list_files(args, modified_only=options.modified,
|
||||
ftypes=['py', 'sh', 'js', 'pp', 'css', 'handlebars',
|
||||
'html', 'json', 'md', 'txt', 'text', 'yaml'],
|
||||
use_shebang=True, group_by_ftype=True, exclude=EXCLUDED_FILES))
|
||||
failed = check_pep8(by_lang['py'])
|
||||
return failed
|
||||
|
||||
def run():
|
||||
# type: () -> None
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option('--modified', '-m',
|
||||
action='store_true',
|
||||
help='Only check modified files')
|
||||
(options, args) = parser.parse_args()
|
||||
failed = lint_all(args, options)
|
||||
sys.exit(1 if failed else 0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
run()
|
Loading…
Add table
Add a link
Reference in a new issue