(self, graph)
| 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 | ) |
no test coverage detected