Merge from the flake8 trunk

This commit is contained in:
Peter Teichman 2012-09-15 13:52:37 -04:00
commit 4a7b381fc0
5 changed files with 825 additions and 573 deletions

View file

@ -17,10 +17,12 @@ from flake8 import pep8
from flake8 import pyflakes
from flake8 import mccabe
pep8style = None
def check_file(path, complexity=-1):
warnings = pyflakes.checkPath(path)
warnings += pep8.input_file(path)
warnings += pep8style.input_file(path)
if complexity > -1:
warnings += mccabe.get_module_complexity(path, complexity)
return warnings
@ -28,7 +30,7 @@ def check_file(path, complexity=-1):
def check_code(code, complexity=-1):
warnings = pyflakes.check(code, 'stdin')
warnings += pep8.input_file(StringIO(code))
warnings += pep8style.input_file(StringIO(code))
if complexity > -1:
warnings += mccabe.get_code_complexity(code, complexity)
return warnings
@ -52,7 +54,9 @@ def _get_python_files(paths):
def main():
options, args = pep8.process_options()
global pep8style
pep8style = pep8.StyleGuide(parse_argv=True, config_file=True)
options = pep8style.options
complexity = options.max_complexity
builtins = set(options.builtins)
warnings = 0
@ -61,8 +65,8 @@ def main():
orig_builtins = set(pyflakes._MAGIC_GLOBALS)
pyflakes._MAGIC_GLOBALS = orig_builtins | builtins
if args and options.filename is not None:
for path in _get_python_files(args):
if pep8style.paths and options.filename is not None:
for path in _get_python_files(pep8style.paths):
warnings += check_file(path, complexity)
else:
# wait for 1 second on the stdin fd
@ -121,6 +125,7 @@ def _initpep8():
pep8.options.logical_checks = pep8.find_checks('logical_line')
pep8.options.counters = dict.fromkeys(pep8.BENCHMARK_KEYS, 0)
pep8.options.messages = {}
pep8.options.max_line_length = 79
pep8.args = []
@ -131,8 +136,11 @@ def run(command):
[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()
if ignore:
pep8.options.ignore=ignore
warnings = 0
_, files_modified, _ = run("git diff-index --cached --name-only HEAD")
@ -191,6 +199,9 @@ else:
yield "%s.py" % filename
def run(self):
global pep8style
pep8style = pep8.StyleGuide(config_file=True)
_initpep8()
# _get_python_files can produce the same file several