@@ -650,6 +650,28 @@ def get_edge(self, u: Node, v: Node) -> Edge:
650
650
raise GraphError (f"Edge { u } -> { v } does not exist" )
651
651
return self .edges [u .id ][v .id ]
652
652
653
+ def _init_edge (self , u : Node , v : Node ):
654
+ """
655
+ Initialize an edge between two nodes
656
+ :param u:
657
+ :param v:
658
+ :return:
659
+ """
660
+
661
+ if u .id not in self .edges :
662
+ self .edges [u .id ] = self .__init_dict ()
663
+ self ._reverse_edges [u .id ] = self .__init_dict ()
664
+ self ._deleted_edges [u .id ] = self .__init_dict ()
665
+ if v .id not in self .edges :
666
+ self .edges [v .id ] = self .__init_dict ()
667
+ self ._reverse_edges [v .id ] = self .__init_dict ()
668
+ self ._deleted_edges [v .id ] = self .__init_dict ()
669
+
670
+ if (u .id , v .id ) not in self .edge_history :
671
+ self .edge_history [(u .id , v .id )] = []
672
+ if (v .id , u .id ) not in self .edge_history :
673
+ self .edge_history [(v .id , u .id )] = []
674
+
653
675
def add_edge (
654
676
self ,
655
677
u : Node ,
@@ -674,14 +696,7 @@ def add_edge(
674
696
if u .id == v .id :
675
697
raise GraphError ("Self loops are currently not allowed" )
676
698
677
- if u .id not in self .edges :
678
- self .edges [u .id ] = self .__init_dict ()
679
- self ._reverse_edges [u .id ] = self .__init_dict ()
680
- self ._deleted_edges [u .id ] = self .__init_dict ()
681
- if v .id not in self .edges :
682
- self .edges [v .id ] = self .__init_dict ()
683
- self ._reverse_edges [v .id ] = self .__init_dict ()
684
- self ._deleted_edges [v .id ] = self .__init_dict ()
699
+ self ._init_edge (u , v )
685
700
686
701
a_edge = Edge (u = u , v = v , edge_type = edge_type , metadata = metadata )
687
702
self .edges [u .id ][v .id ] = a_edge
@@ -691,9 +706,6 @@ def add_edge(
691
706
self .edges [v .id ][u .id ] = b_edge
692
707
self ._reverse_edges [u .id ][v .id ] = b_edge
693
708
694
- self .edge_history [(u .id , v .id )] = []
695
- self .edge_history [(v .id , u .id )] = []
696
-
697
709
def add_directed_edge (
698
710
self ,
699
711
u : Node ,
@@ -718,19 +730,13 @@ def add_directed_edge(
718
730
if u .id == v .id :
719
731
raise GraphError ("Self loops are currently not allowed" )
720
732
721
- if u .id not in self .edges :
722
- self .edges [u .id ] = self .__init_dict ()
723
- self ._deleted_edges [u .id ] = self .__init_dict ()
724
- if v .id not in self ._reverse_edges :
725
- self ._reverse_edges [v .id ] = self .__init_dict ()
733
+ self ._init_edge (u , v )
726
734
727
735
edge = Edge (u = u , v = v , edge_type = edge_type , metadata = metadata )
728
736
729
737
self .edges [u .id ][v .id ] = edge
730
738
self ._reverse_edges [v .id ][u .id ] = edge
731
739
732
- self .edge_history [(u .id , v .id )] = []
733
-
734
740
def add_edge_history (self , u , v , action : TestResult ):
735
741
"""
736
742
Add an action to the edge history
0 commit comments