mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-06 13:06:53 +00:00
Merge from the flake8 trunk
This commit is contained in:
commit
4a7b381fc0
5 changed files with 825 additions and 573 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue