MCPcopy
hub / github.com/lutzroeder/netron / attributeAssignmentSpecialHandlingHack

Method attributeAssignmentSpecialHandlingHack

source/python.js:13938–13969  ·  view source on GitHub ↗
(qualified_classname, assign)

Source from the content-addressed store, hash-verified

13936 parseImports(/* p */) {
13937 }
13938 attributeAssignmentSpecialHandlingHack(qualified_classname, assign) {
13939 const replacements = new Map([
13940 ['__torch__.torch.ao.nn.quantized.modules.linear.LinearPackedParams', ['_packed_params', 'Tensor', '__torch__.torch.classes.quantized.LinearPackedParamsBase']],
13941 ['__torch__.torch.ao.nn.quantized.modules.linear.Linear', ['_packed_params', 'Tensor', '__torch__.torch.classes.quantized.LinearPackedParamsBase']],
13942 ['__torch__.torch.ao.nn.quantized.dynamic.modules.linear.Linear', ['_packed_params', 'Tensor', '__torch__.torch.classes.quantized.LinearPackedParamsBase']],
13943 ['__torch__.torch.ao.nn.quantized.modules.conv.Conv2d', ['_packed_params', 'Tensor', '__torch__.torch.classes.quantized.Conv2dPackedParamsBase']],
13944 ['__torch__.torch.nn.intrinsic.quantized.modules.conv_relu.ConvReLU2d', ['_packed_params', 'Tensor', '__torch__.torch.classes.quantized.Conv2dPackedParamsBase']],
13945 ['__torch__.torch.ao.nn.quantized.modules.conv.Conv3d', ['_packed_params', 'Tensor', '__torch__.torch.classes.quantized.Conv3dPackedParamsBase']],
13946 ['__torch__.torch.nn.intrinsic.quantized.modules.conv_relu.ConvReLU3d', ['_packed_params', 'Tensor', '__torch__.torch.classes.quantized.Conv3dPackedParamsBase']],
13947 ['__torch__.torch.nn.quantized.modules.linear.LinearPackedParams', ["_packed_params", "Tensor", "__torch__.torch.classes.quantized.LinearPackedParamsBase"]],
13948 ["__torch__.torch.nn.quantized.modules.linear.Linear", ["_packed_params", "Tensor", "__torch__.torch.classes.quantized.LinearPackedParamsBase"]],
13949 ["__torch__.torch.nn.quantized.modules.conv.Conv2d", ["_packed_params", "Tensor", "__torch__.torch.classes.quantized.Conv2dPackedParamsBase"]],
13950 ["__torch__.torch.nn.quantized.modules.conv.Conv3d", ["_packed_params", "Tensor", "__torch__.torch.classes.quantized.Conv3dPackedParamsBase"]],
13951 ["__torch__.torch.nn.quantized.dynamic.modules.linear.Linear", ["_packed_params", "Tensor", "__torch__.torch.classes.quantized.LinearPackedParamsBase"]]
13952 ]);
13953 const mangleRe = /\.___torch_mangle_\d+/g;
13954 const demangled_classname = qualified_classname.qualifiedName().replace(mangleRe, '');
13955 if (replacements.has(demangled_classname)) {
13956 const lhs = assign.target;
13957 if (!assign.annotation || assign.annotation instanceof ast.Name === false) {
13958 return null;
13959 }
13960 const type = assign.annotation.id;
13961 const [attr_name, expected_type, replacement_type] = replacements.get(demangled_classname);
13962 if (lhs.id === attr_name && type === expected_type) {
13963 const p = new torch._C.Parser(new torch._C.Source(replacement_type));
13964 const typename_expr = p.parseExp();
13965 return new ast.AnnAssign(lhs, typename_expr, assign.value, lhs instanceof ast.Name);
13966 }
13967 }
13968 return null;
13969 }
13970 LEGACY_import_methods(mod, src) {
13971 const self = new torch._C.SimpleSelf(mod.type());
13972 const prefix = mod.type().name();

Callers 1

importClassMethod · 0.80

Calls 4

parseExpMethod · 0.80
qualifiedNameMethod · 0.45
hasMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected