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:
Rohitt Vashishtha 2017-07-07 04:26:46 +05:30 committed by showell
parent c1275fded6
commit 1c8d359546
2 changed files with 37 additions and 1 deletions

View file

@ -5,5 +5,5 @@ install:
- pip install . - pip install .
- bots_api/provision.py - bots_api/provision.py
script: script:
# TODO run linter here - tools/lint
- bots_api/test-bots - bots_api/test-bots

36
tools/lint Executable file
View 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()