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

Class Reports

mypy/report.py:58–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56
57
58class Reports:
59 def __init__(self, data_dir: str, report_dirs: dict[str, str]) -> None:
60 self.data_dir = data_dir
61 self.reporters: list[AbstractReporter] = []
62 self.named_reporters: dict[str, AbstractReporter] = {}
63
64 for report_type, report_dir in sorted(report_dirs.items()):
65 self.add_report(report_type, report_dir)
66
67 def add_report(self, report_type: str, report_dir: str) -> AbstractReporter:
68 try:
69 return self.named_reporters[report_type]
70 except KeyError:
71 pass
72 reporter_cls, needs_lxml = reporter_classes[report_type]
73 if needs_lxml and not LXML_INSTALLED:
74 print(
75 (
76 "You must install the lxml package before you can run mypy"
77 " with `--{}-report`.\n"
78 "You can do this with `python3 -m pip install lxml`."
79 ).format(report_type),
80 file=sys.stderr,
81 )
82 raise ImportError
83 reporter = reporter_cls(self, report_dir)
84 self.reporters.append(reporter)
85 self.named_reporters[report_type] = reporter
86 return reporter
87
88 def file(
89 self,
90 tree: MypyFile,
91 modules: dict[str, MypyFile],
92 type_map: dict[Expression, Type],
93 options: Options,
94 ) -> None:
95 for reporter in self.reporters:
96 reporter.on_file(tree, modules, type_map, options)
97
98 def finish(self) -> None:
99 for reporter in self.reporters:
100 reporter.on_finish()
101
102
103class AbstractReporter(metaclass=ABCMeta):

Callers 2

build_innerFunction · 0.90
_make_managerMethod · 0.90

Calls

no outgoing calls

Tested by 1

_make_managerMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…