Network: Fix edge delete whene there are multiple edge between two node.

This commit is contained in:
Pierre-Antoine Rouby committed 2024-04-16 15:15:30 +02:00
1 parent 9c5ea0bdd9
commit 0c0d7f3481
5 files changed
+22 -28

No files matched your search

+9 -19
View File
@@ -142,26 +142,21 @@ class Graph(object):
def insert_node(self, node):
return self._add_node(node)
def remove_node(self, node_name: str):
self._nodes = list(
filter(
lambda n: n.name != node_name,
self._nodes
)
)
self._remove_associated_edge(node_name)
def remove_node(self, node):
self._nodes.remove(node)
self._remove_associated_edge(node)
self._status.modified()
def _remove_associated_edge(self, node_name: str):
def _remove_associated_edge(self, node: str):
edges = list(
filter(
lambda e: (e.node1.name == node_name or
e.node2.name == node_name),
lambda e: (e.node1 == node or
e.node2 == node),
self._edges,
)
)
for edge in edges:
self.remove_edge(edge.name)
self.remove_edge(edge)
def create_node(self, x: float = 0.0, y: float = 0.0):
node = self._create_node(x, y)
@@ -197,13 +192,8 @@ class Graph(object):
def create_edge(self, n1: Node, n2: Node):
return self._create_edge(n1, n2)
def remove_edge(self, edge_name: str):
self._edges = list(
filter(
lambda e: e.name != edge_name,
self._edges
)
)
def remove_edge(self, edge):
self._edges.remove(edge)
self._status.modified()
def is_upstream_node(self, node):