MCPcopy
hub / github.com/python/mypy / load_tree

Method load_tree

mypy/build.py:3098–3127  ·  view source on GitHub ↗
(self, temporary: bool = False)

Source from the content-addressed store, hash-verified

3096 return self.manager.load_fine_grained_deps(self.id)
3097
3098 def load_tree(self, temporary: bool = False) -> None:
3099 if self.manager.parallel_worker:
3100 assert self.path is not None
3101 _, data_file, _ = get_cache_names(self.id, self.path, self.manager.options)
3102 else:
3103 assert (
3104 self.meta is not None
3105 ), "Internal error: this method must be called only for cached modules"
3106 data_file = self.meta.data_file
3107
3108 data: bytes | dict[str, Any] | None
3109 if self.options.fixed_format_cache:
3110 data = _load_ff_file(data_file, self.manager, "Could not load tree: ", None)
3111 else:
3112 data = _load_json_file(data_file, self.manager, "Load tree ", "Could not load tree: ")
3113 if data is None:
3114 return
3115
3116 t0 = time.time()
3117 # TODO: Assert data file wasn't changed.
3118 if isinstance(data, bytes):
3119 data_io = ReadBuffer(data)
3120 self.tree = MypyFile.read(data_io)
3121 else:
3122 self.tree = MypyFile.deserialize(data)
3123 t1 = time.time()
3124 self.manager.add_stats(deserialize_time=t1 - t0)
3125 if not temporary:
3126 self.manager.modules[self.id] = self.tree
3127 self.manager.add_stats(fresh_trees=1)
3128
3129 def fix_cross_refs(self) -> None:
3130 assert self.tree is not None, "Internal error: method must be called on parsed file only"

Callers 2

new_stateMethod · 0.95
process_fresh_modulesFunction · 0.80

Calls 7

get_cache_namesFunction · 0.85
_load_ff_fileFunction · 0.85
_load_json_fileFunction · 0.85
isinstanceFunction · 0.85
add_statsMethod · 0.80
readMethod · 0.45
deserializeMethod · 0.45

Tested by

no test coverage detected