1. mccabe.py support # NOQA 2. run.py support ignore some errors 3. run.py add max_line_length default value

This commit is contained in:
onlytiancai 2012-09-12 11:03:20 +08:00
parent dd92d52f06
commit ccc7acc62e
3 changed files with 17 additions and 10 deletions

2
README
View file

@ -90,7 +90,7 @@ To use the Git hook on any *commit*, add a **pre-commit** file in the
STRICT = False STRICT = False
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(git_hook(complexity=COMPLEXITY, strict=STRICT)) sys.exit(git_hook(complexity=COMPLEXITY, strict=STRICT, ignore='E501'))
If *strict* option is set to **True**, any warning will block the commit. When If *strict* option is set to **True**, any warning will block the commit. When

View file

@ -11,6 +11,7 @@ except ImportError:
import optparse import optparse
import sys import sys
from flake8.util import skip_warning
from collections import defaultdict from collections import defaultdict
WARNING_CODE = "W901" WARNING_CODE = "W901"
@ -243,6 +244,8 @@ def get_code_complexity(code, min=7, filename='stdin'):
# ? # ?
continue continue
if graph.complexity() >= min: if graph.complexity() >= min:
graph.filename = filename
if not skip_warning(graph):
msg = '%s:%d:1: %s %r is too complex (%d)' % ( msg = '%s:%d:1: %s %r is too complex (%d)' % (
filename, filename,
graph.lineno, graph.lineno,

View file

@ -119,6 +119,7 @@ def _initpep8():
pep8.options.logical_checks = pep8.find_checks('logical_line') pep8.options.logical_checks = pep8.find_checks('logical_line')
pep8.options.counters = dict.fromkeys(pep8.BENCHMARK_KEYS, 0) pep8.options.counters = dict.fromkeys(pep8.BENCHMARK_KEYS, 0)
pep8.options.messages = {} pep8.options.messages = {}
pep8.options.max_line_length = 79
pep8.args = [] pep8.args = []
@ -129,8 +130,11 @@ def run(command):
[line.strip() for line in p.stderr.readlines()]) [line.strip() for line in p.stderr.readlines()])
def git_hook(complexity=-1, strict=False): def git_hook(complexity=-1, strict=False, ignore=None):
_initpep8() _initpep8()
if ignore:
pep8.options.ignore=ignore
warnings = 0 warnings = 0
_, files_modified, _ = run("git diff-index --cached --name-only HEAD") _, files_modified, _ = run("git diff-index --cached --name-only HEAD")