def parse(handle): '''Parse the contents of the provided file descriptor as a linting exceptions file. Return a dictionary whose keys are test file names and whose values are Python sets of "Check" ID strings.''' exceptions = dict() for line in handle: if line.startswith('#'): continue parts = line.split() file_name = parts[0] check_names = set(parts[1:]) assert file_name not in exceptions, ( 'exceptions should have a single entry for each file') assert len(check_names) > 0, ( 'Each exceptions entry should specify at least on check') exceptions[file_name] = check_names return exceptions