MCPcopy Create free account
hub / github.com/alibaba/GraphScope / create_schema_node

Method create_schema_node

python/graphscope/gsctl/utils.py:108–181  ·  view source on GitHub ↗
(self, graph)

Source from the content-addressed store, hash-verified

106 self.create_schema_node(graph)
107
108 def create_schema_node(self, graph):
109 schema_identifier = f"{graph.id}_schema"
110 self.tree.create_node(
111 tag="schema", identifier=schema_identifier, parent=graph.id
112 )
113 # vertex type
114 vertex_type_identifier = f"{schema_identifier}_vertex_types"
115 self.tree.create_node(
116 tag="vertex types",
117 identifier=vertex_type_identifier,
118 parent=schema_identifier,
119 )
120 if graph.var_schema is not None and graph.var_schema.vertex_types is not None:
121 for vertex in graph.var_schema.vertex_types:
122 vertex_identifier = f"{vertex_type_identifier}_{vertex.type_name}"
123 self.tree.create_node(
124 tag=f"{vertex.type_name}",
125 identifier=vertex_identifier,
126 parent=vertex_type_identifier,
127 )
128 # property
129 if vertex.properties is not None:
130 for p in vertex.properties:
131 is_primary_key = (
132 True if p.property_name in vertex.primary_keys else False
133 )
134 property_identifier = f"{vertex_identifier}_{p.property_name}"
135 tag = "Property(name: {0}, type: {1}, is_primary_key: {2})".format(
136 p.property_name,
137 self.parse_property_type(p.property_type),
138 is_primary_key,
139 )
140 self.tree.create_node(
141 tag=tag,
142 identifier=property_identifier,
143 parent=vertex_identifier,
144 )
145 # edge type
146 edge_type_identifier = f"{schema_identifier}_edge_types"
147 self.tree.create_node(
148 tag="edge types",
149 identifier=edge_type_identifier,
150 parent=schema_identifier,
151 )
152 if graph.var_schema is not None and graph.var_schema.edge_types is not None:
153 for edge in graph.var_schema.edge_types:
154 for relation in edge.vertex_type_pair_relations:
155 edge_label = "({0}) -[{1}]-> ({2})".format(
156 relation.source_vertex,
157 edge.type_name,
158 relation.destination_vertex,
159 )
160 edge_identifier = f"{edge_type_identifier}_{edge_label}"
161 self.tree.create_node(
162 tag=f"{edge_label}",
163 identifier=edge_identifier,
164 parent=edge_type_identifier,
165 )

Callers 1

create_graph_nodeMethod · 0.95

Calls 2

parse_property_typeMethod · 0.95
formatMethod · 0.45

Tested by

no test coverage detected