MCPcopy Create free account
hub / github.com/pytorch/pytorch / _SchemaNode

Class _SchemaNode

caffe2/python/schema.py:982–1058  ·  view source on GitHub ↗

This is a private class used to represent a Schema Node

Source from the content-addressed store, hash-verified

980
981
982class _SchemaNode:
983 """This is a private class used to represent a Schema Node"""
984
985 __slots__: Sequence[str] = ("name", "children", "type_str", "field")
986
987 def __init__(self, name, type_str=''):
988 self.name = name
989 self.children = []
990 self.type_str = type_str
991 self.field = None
992
993 def add_child(self, name, type_str=''):
994 for child in self.children:
995 if child.name == name and child.type_str == type_str:
996 return child
997 child = _SchemaNode(name, type_str)
998 self.children.append(child)
999 return child
1000
1001 def get_field(self):
1002
1003 list_names = ['lengths', 'values']
1004 map_names = ['lengths', 'keys', 'values']
1005
1006 if len(self.children) == 0 or self.field is not None:
1007 if self.field is None:
1008 return Struct()
1009 else:
1010 return self.field
1011
1012 child_names = []
1013 for child in self.children:
1014 child_names.append(child.name)
1015
1016 if (set(child_names) == set(list_names)):
1017 for child in self.children:
1018 if child.name == 'values':
1019 values_field = child.get_field()
1020 else:
1021 lengths_field = child.get_field()
1022 self.field = List(
1023 values_field,
1024 lengths_blob=lengths_field
1025 )
1026 self.type_str = "List"
1027 return self.field
1028 elif (set(child_names) == set(map_names)):
1029 for child in self.children:
1030 if child.name == 'keys':
1031 key_field = child.get_field()
1032 elif child.name == 'values':
1033 values_field = child.get_field()
1034 else:
1035 lengths_field = child.get_field()
1036 self.field = Map(
1037 key_field,
1038 values_field,
1039 lengths_blob=lengths_field

Callers 2

add_childMethod · 0.85
from_column_listFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…