in tools/upgrade/errors.py [0:0]
def _remove_unused_ignores(line: str, errors: List[Dict[str, str]]) -> str:
unused_ignore_codes = _get_unused_ignore_codes(errors)
match = re.search(r"pyre-(ignore|fixme) *\[([0-9, ]+)\]", line)
stripped_line = re.sub(r"# pyre-(ignore|fixme).*$", "", line).rstrip()
if not match:
return stripped_line
# One or more codes are specified in the ignore comment.
# Remove only the codes that are erroring as unused.
ignore_codes_string = match.group(2)
ignore_codes = [
int(code.strip()) for code in ignore_codes_string.split(",") if code != ""
]
remaining_ignore_codes = set(ignore_codes) - set(unused_ignore_codes)
if len(remaining_ignore_codes) == 0 or len(unused_ignore_codes) == 0:
return stripped_line
else:
return line.replace(
ignore_codes_string,
", ".join([str(code) for code in remaining_ignore_codes]),
)