11"""Graph database for FlowQuery."""
22
3- from typing import Any , Dict , Optional , Union , TYPE_CHECKING
3+ from __future__ import annotations
44
5- from .. parsing . ast_node import ASTNode
5+ from typing import Dict , Optional , Union
66
7- if TYPE_CHECKING :
8- from .node import Node
9- from .relationship import Relationship
10- from .node_data import NodeData
11- from .relationship_data import RelationshipData
7+ from ..parsing .ast_node import ASTNode
8+ from .node import Node
9+ from .node_data import NodeData
10+ from .physical_node import PhysicalNode
11+ from .physical_relationship import PhysicalRelationship
12+ from .relationship import Relationship
13+ from .relationship_data import RelationshipData
1214
1315
1416class Database :
@@ -18,7 +20,7 @@ class Database:
1820 _nodes : Dict [str , 'PhysicalNode' ] = {}
1921 _relationships : Dict [str , 'PhysicalRelationship' ] = {}
2022
21- def __init__ (self ):
23+ def __init__ (self ) -> None :
2224 pass
2325
2426 @classmethod
@@ -29,7 +31,6 @@ def get_instance(cls) -> 'Database':
2931
3032 def add_node (self , node : 'Node' , statement : ASTNode ) -> None :
3133 """Adds a node to the database."""
32- from .physical_node import PhysicalNode
3334 if node .label is None :
3435 raise ValueError ("Node label is null" )
3536 physical = PhysicalNode (None , node .label )
@@ -42,7 +43,6 @@ def get_node(self, node: 'Node') -> Optional['PhysicalNode']:
4243
4344 def add_relationship (self , relationship : 'Relationship' , statement : ASTNode ) -> None :
4445 """Adds a relationship to the database."""
45- from .physical_relationship import PhysicalRelationship
4646 if relationship .type is None :
4747 raise ValueError ("Relationship type is null" )
4848 physical = PhysicalRelationship ()
@@ -56,11 +56,6 @@ def get_relationship(self, relationship: 'Relationship') -> Optional['PhysicalRe
5656
5757 async def get_data (self , element : Union ['Node' , 'Relationship' ]) -> Union ['NodeData' , 'RelationshipData' ]:
5858 """Gets data for a node or relationship."""
59- from .node import Node
60- from .relationship import Relationship
61- from .node_data import NodeData
62- from .relationship_data import RelationshipData
63-
6459 if isinstance (element , Node ):
6560 node = self .get_node (element )
6661 if node is None :
@@ -75,8 +70,3 @@ async def get_data(self, element: Union['Node', 'Relationship']) -> Union['NodeD
7570 return RelationshipData (data )
7671 else :
7772 raise ValueError ("Element is neither Node nor Relationship" )
78-
79-
80- # Import for type hints
81- from .physical_node import PhysicalNode
82- from .physical_relationship import PhysicalRelationship
0 commit comments