From 2197c2ea1561e7dca595d82d30d4e5dceada2f07 Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Sun, 13 Nov 2016 14:48:18 -0600 Subject: [PATCH] Correct exclude paths in git hook When running the git hook, even though the appropriate config file is found and processed, the exclude patterns and paths were not being corrected to account for the temporary directory that we copy the files into. Related-to #223 --- src/flake8/main/git.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/flake8/main/git.py b/src/flake8/main/git.py index 3f9689f..096fed6 100644 --- a/src/flake8/main/git.py +++ b/src/flake8/main/git.py @@ -42,6 +42,7 @@ def hook(lazy=False, strict=False): with make_temporary_directory() as tempdir: filepaths = list(copy_indexed_files_to(tempdir, lazy)) app.initialize(['.']) + app.options.exclude = update_excludes(app.options.exclude, tempdir) app.run_checks(filepaths) app.report_errors() @@ -194,6 +195,14 @@ def config_for(parameter): return value.lower() in defaults.TRUTHY_VALUES +def update_excludes(exclude_list, temporary_directory_path): + return [ + (temporary_directory_path + pattern) + if os.path.isabs(pattern) else pattern + for pattern in exclude_list + ] + + _HOOK_TEMPLATE = """#!{executable} import os import sys