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

Method deserialize

mypyc/ir/module_ir.py:70–103  ·  view source on GitHub ↗
(cls, data: JsonDict, ctx: DeserMaps)

Source from the content-addressed store, hash-verified

68
69 @classmethod
70 def deserialize(cls, data: JsonDict, ctx: DeserMaps) -> ModuleIR:
71 module = ModuleIR(
72 data["fullname"],
73 data["imports"],
74 [ctx.functions[FuncDecl.get_id_from_json(f)] for f in data["functions"]],
75 [ClassIR.deserialize(c, ctx) for c in data["classes"]],
76 [(k, deserialize_type(t, ctx)) for k, t in data["final_names"]],
77 [],
78 )
79
80 # Deserialize dependencies
81 deps: set[Dependency] = set()
82 for dep_dict in data["dependencies"]:
83 if dep_dict["type"] == "Capsule":
84 deps.add(Capsule(dep_dict["name"]))
85 elif dep_dict["type"] == "SourceDep":
86 deps.add(
87 SourceDep(
88 dep_dict["path"],
89 include_dirs=dep_dict["include_dirs"],
90 internal=dep_dict["internal"],
91 )
92 )
93 elif dep_dict["type"] == "HeaderDep":
94 deps.add(
95 HeaderDep(
96 dep_dict["path"],
97 include_dirs=dep_dict["include_dirs"],
98 internal=dep_dict["internal"],
99 )
100 )
101 module.dependencies = deps
102
103 return module
104
105
106def deserialize_modules(data: dict[str, JsonDict], ctx: DeserMaps) -> dict[str, ModuleIR]:

Callers 1

deserialize_modulesFunction · 0.45

Calls 8

deserialize_typeFunction · 0.90
CapsuleClass · 0.90
SourceDepClass · 0.90
HeaderDepClass · 0.90
ModuleIRClass · 0.85
setClass · 0.85
get_id_from_jsonMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected