diff --git a/flake8/hooks.py b/flake8/hooks.py index 7d493b8..a99bae3 100644 --- a/flake8/hooks.py +++ b/flake8/hooks.py @@ -35,8 +35,9 @@ def git_hook(complexity=-1, strict=False, ignore=None, lazy=False): def hg_hook(ui, repo, **kwargs): from flake8.main import check_file - _initpep8() complexity = ui.config('flake8', 'complexity', default=-1) + config = ui.config('flake8', 'config', default=True) + _initpep8(config_file=config) warnings = 0 for file_ in _get_files(repo, **kwargs): diff --git a/flake8/main.py b/flake8/main.py index 1241483..842867b 100644 --- a/flake8/main.py +++ b/flake8/main.py @@ -141,6 +141,7 @@ def _get_python_files(paths): if os.path.isdir(path): for dirpath, dirnames, filenames in os.walk(path): if pep8style.excluded(dirpath): + dirnames[:] = [] continue for filename in filenames: if not filename.endswith('.py'): diff --git a/flake8/util.py b/flake8/util.py index 49042d6..8d78edb 100644 --- a/flake8/util.py +++ b/flake8/util.py @@ -49,8 +49,9 @@ def get_parser(): def skip_warning(warning, ignore=[]): # XXX quick dirty hack, just need to keep the line in the warning - if not hasattr(warning, 'message'): + if not hasattr(warning, 'message') or ignore is None: # McCabe's warnings cannot be skipped afaik, and they're all strings. + # And we'll get a TypeError otherwise return False if warning.message.split()[0] in ignore: return True @@ -90,16 +91,17 @@ def skip_file(path, source=None): return _NOQA.search(content) is not None -def _initpep8(): +def _initpep8(config_file=True): # default pep8 setup global pep8style import pep8 if pep8style is None: - pep8style = pep8.StyleGuide(config_file=True) + pep8style = pep8.StyleGuide(config_file=config_file) pep8style.options.physical_checks = pep8.find_checks('physical_line') pep8style.options.logical_checks = pep8.find_checks('logical_line') pep8style.options.counters = dict.fromkeys(pep8.BENCHMARK_KEYS, 0) pep8style.options.messages = {} - pep8style.options.max_line_length = 79 + if not pep8style.options.max_line_length: + pep8style.options.max_line_length = 79 pep8style.args = [] return pep8style