Refactor tidy.py to reduce code duplication.

This commit is contained in:
Dhananjay Nakrani 2015-04-19 18:13:59 -07:00
parent a0295b7489
commit 7453959426

View file

@ -67,38 +67,38 @@ def check_license(contents):
yield (1, "incorrect license")
def check_length(contents):
def check_length(idx, line):
if len(line) >= 160:
yield (idx + 1, "(much) overlong line")
def check_whatwg_url(idx, line):
matches = re.findall(r'whatwg.org/multipage.*#', line);
if matches:
for i, match in enumerate(matches):
parts = match.split('multipage')
if len(parts[1]) > 1 and parts[1][1] != '#':
yield (idx + 1, "URL should not point to specific WHATWG multipage page!")
def check_whitespace(idx, line):
if line[-1] == "\n":
line = line[:-1]
else:
yield (idx + 1, "no newline at EOF")
if line.endswith(" "):
yield (idx + 1, "trailing whitespace")
if "\t" in line:
yield (idx + 1, "tab on line")
if "\r" in line:
yield (idx + 1, "CR on line")
def check_whitespace_url_len(contents):
lines = contents.splitlines(True)
for idx, line in enumerate(lines):
if len(line) >= 160:
yield (idx + 1, "(much) overlong line")
def check_whatwg_url(contents):
lines = contents.splitlines(True)
for idx, line in enumerate(lines):
matches = re.findall(r'whatwg.org/multipage.*#', line);
if matches:
for i, match in enumerate(matches):
parts = match.split('multipage')
if len(parts[1]) > 1 and parts[1][1] != '#':
yield (idx + 1, "URL should not point to specific WHATWG multipage page!")
def check_whitespace(contents):
lines = contents.splitlines(True)
for idx, line in enumerate(lines):
if line[-1] == "\n":
line = line[:-1]
else:
yield (idx + 1, "no newline at EOF")
if line.endswith(" "):
yield (idx + 1, "trailing whitespace")
if "\t" in line:
yield (idx + 1, "tab on line")
if "\r" in line:
yield (idx + 1, "CR on line")
for error in itertools.chain(check_length(idx, line), check_whitespace(idx, line), check_whatwg_url(idx, line)):
yield error
def collect_errors_for_files(files_to_check, checking_functions):
@ -137,7 +137,7 @@ def scan():
all_files = collect_file_names(directories_to_check)
files_to_check = filter(should_check, all_files)
checking_functions = [check_license, check_length, check_whitespace, check_whatwg_url]
checking_functions = [check_license, check_whitespace_url_len]
errors = collect_errors_for_files(files_to_check, checking_functions)
reftest_files = collect_file_names(reftest_directories)