16from typing_extensions
import TYPE_CHECKING, Dict, List, Optional, Self, Type, Union
58 nodes: Dict[str, NodeType]
59 edges: Dict[str, EdgeType]
65 models: List[Union[Type[
"NodeModel"], Type[
"EdgeModel"]]],
72 if issubclass(model, NodeModel):
73 nodes[model.get_type()] = model.to_type()
74 elif issubclass(model, EdgeModel):
75 edges[model.get_type()] = model.to_type()
76 return cls(name=graph_type_name, nodes=nodes, edges=edges)
78 def to_gql(self) -> str:
80 f
"CREATE GRAPH TYPE {self.name} {{\n"
81 +
",\n".join([x.to_gql()
for x
in self.
nodes.values()])
83 +
",\n".join([x.to_gql()
for x
in self.
edges.values()])