lint: Add code to suggest removing exclusions.

If excluded lines no longer exist in a file, print a message
asking the user to remove the exclusion.
This commit is contained in:
Steve Howell
2017-06-21 08:12:58 -04:00
parent 95d86c8aeb
commit e49afe3ebc

View File

@@ -47,11 +47,16 @@ def build_custom_checkers(by_lang):
rules_to_apply.append(rule) rules_to_apply.append(rule)
for rule in rules_to_apply: for rule in rules_to_apply:
exclude_list = rule.get('exclude_line', set()) exclude_lines = {
line for
(exclude_fn, line) in rule.get('exclude_line', set())
if exclude_fn == fn
}
pattern = rule['pattern'] pattern = rule['pattern']
for (i, line, line_newline_stripped, line_fully_stripped) in line_tups: for (i, line, line_newline_stripped, line_fully_stripped) in line_tups:
if (fn, line_fully_stripped) in exclude_list: if line_fully_stripped in exclude_lines:
exclude_lines.remove(line_fully_stripped)
continue continue
try: try:
@@ -69,6 +74,9 @@ def build_custom_checkers(by_lang):
print("Exception with %s at %s line %s" % (rule['pattern'], fn, i+1)) print("Exception with %s at %s line %s" % (rule['pattern'], fn, i+1))
traceback.print_exc() traceback.print_exc()
if exclude_lines:
print('Please remove exclusions for file %s: %s' % (fn, exclude_lines))
lastLine = None lastLine = None
for (i, line, line_newline_stripped, line_fully_stripped) in line_tups: for (i, line, line_newline_stripped, line_fully_stripped) in line_tups:
if isinstance(line, bytes): if isinstance(line, bytes):