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

Function add_info_hook

test-data/unit/plugins/dyn_class_from_method.py:33–48  ·  view source on GitHub ↗
(ctx: DynamicClassDefContext)

Source from the content-addressed store, hash-verified

31
32
33def add_info_hook(ctx: DynamicClassDefContext) -> None:
34 class_def = ClassDef(ctx.name, Block([]))
35 class_def.fullname = ctx.api.qualified_name(ctx.name)
36
37 info = TypeInfo(SymbolTable(), class_def, ctx.api.cur_mod_id)
38 class_def.info = info
39 assert isinstance(ctx.call.args[0], RefExpr)
40 queryset_type_fullname = ctx.call.args[0].fullname
41 queryset_node = ctx.api.lookup_fully_qualified_or_none(queryset_type_fullname)
42 assert queryset_node is not None
43 queryset_info = queryset_node.node
44 assert isinstance(queryset_info, TypeInfo)
45 obj = ctx.api.named_type("builtins.object")
46 info.mro = [info, queryset_info, obj.type]
47 info.bases = [Instance(queryset_info, [])]
48 ctx.api.add_symbol_table_node(ctx.name, SymbolTableNode(GDEF, info))
49
50
51def as_manager_hook(ctx: DynamicClassDefContext) -> None:

Callers

nothing calls this directly

Calls 11

ClassDefClass · 0.90
BlockClass · 0.90
TypeInfoClass · 0.90
SymbolTableClass · 0.90
InstanceClass · 0.90
SymbolTableNodeClass · 0.90
isinstanceFunction · 0.85
qualified_nameMethod · 0.45
named_typeMethod · 0.45
add_symbol_table_nodeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…