@@ -80,7 +80,9 @@ def from_graph_data(
8080 theme = theme ,
8181 )
8282
83- def add_data (self , nodes : Node | list [Node ] | None = None , relationships : Relationship | list [Relationship ] | None = None ) -> None :
83+ def add_data (
84+ self , nodes : Node | list [Node ] | None = None , relationships : Relationship | list [Relationship ] | None = None
85+ ) -> None :
8486 """
8587 Add nodes or relationships to the graph widget.
8688
@@ -120,17 +122,22 @@ def remove_data(
120122 node_ids_to_remove = {nodes .id }
121123 elif isinstance (nodes , NodeIdType ):
122124 node_ids_to_remove = {nodes }
125+ elif nodes is None :
126+ node_ids_to_remove = set ()
123127 else :
124128 node_ids_to_remove = {n .id if isinstance (n , Node ) else n for n in nodes }
125129
126130 if isinstance (relationships , Relationship ):
127131 rel_ids_to_remove = {relationships .id }
128132 elif isinstance (relationships , RelationshipIdType ):
129133 rel_ids_to_remove = {relationships }
134+ elif relationships is None :
135+ rel_ids_to_remove = set ()
130136 else :
131137 rel_ids_to_remove = {r .id if isinstance (r , Relationship ) else r for r in relationships }
132138
133- self .nodes = [n for n in self .nodes if n ["id" ] not in node_ids_to_remove ]
139+ if node_ids_to_remove :
140+ self .nodes = [n for n in self .nodes if n ["id" ] not in node_ids_to_remove ]
134141
135142 def keep_rel (r : dict [str , Any ]) -> bool :
136143 return (
@@ -139,4 +146,5 @@ def keep_rel(r: dict[str, Any]) -> bool:
139146 and r ["to" ] not in node_ids_to_remove
140147 )
141148
142- self .relationships = [r for r in self .relationships if keep_rel (r )]
149+ if rel_ids_to_remove :
150+ self .relationships = [r for r in self .relationships if keep_rel (r )]
0 commit comments