MCPcopy Index your code
hub / github.com/python/mypy / generate_unused_ignore_errors

Method generate_unused_ignore_errors

mypy/errors.py:908–936  ·  view source on GitHub ↗
(self, file: str, is_typeshed: bool = False)

Source from the content-addressed store, hash-verified

906 self.has_blockers.remove(path)
907
908 def generate_unused_ignore_errors(self, file: str, is_typeshed: bool = False) -> None:
909 if is_typeshed or file in self.ignored_files:
910 return
911 ignored_lines = self.ignored_lines[file]
912 used_ignored_lines = self.used_ignored_lines[file]
913 for line, ignored_codes in ignored_lines.items():
914 if line in self.skipped_lines[file]:
915 continue
916 if codes.UNUSED_IGNORE.code in ignored_codes:
917 continue
918 used_ignored_codes = set(used_ignored_lines[line])
919 unused_ignored_codes = [c for c in ignored_codes if c not in used_ignored_codes]
920 # `ignore` is used
921 if not ignored_codes and used_ignored_codes:
922 continue
923 # All codes appearing in `ignore[...]` are used
924 if ignored_codes and not unused_ignored_codes:
925 continue
926 # Display detail only when `ignore[...]` specifies more than one error code
927 unused_codes_message = ""
928 if len(ignored_codes) > 1 and unused_ignored_codes:
929 unused_codes_message = f"[{', '.join(unused_ignored_codes)}]"
930 message = f'Unused "type: ignore{unused_codes_message}" comment'
931 for unused in unused_ignored_codes:
932 narrower = set(used_ignored_codes) & codes.sub_code_map[unused]
933 if narrower:
934 message += f", use narrower [{', '.join(narrower)}] instead of [{unused}] code"
935 # Don't use report() since add_error_info will ignore the error!
936 self.report_simple_error(file, line, message, code=codes.UNUSED_IGNORE)
937
938 def generate_ignore_without_code_errors(
939 self, file: str, is_warning_unused_ignores: bool, is_typeshed: bool = False

Callers 1

Calls 5

report_simple_errorMethod · 0.95
setClass · 0.85
lenFunction · 0.85
itemsMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected