From 48ba47dfaff7da2a9ed636231ebd70e1056bb245 Mon Sep 17 00:00:00 2001 From: Brandon Rodriguez <brodriguez8774@gmail.com> Date: Sun, 17 Nov 2019 05:49:17 -0500 Subject: [PATCH] Add handling for initial/final states in "remove_node" graph function --- resources/graphs/state_machine/graph.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/resources/graphs/state_machine/graph.py b/resources/graphs/state_machine/graph.py index 4e39cc5..e5e22b7 100644 --- a/resources/graphs/state_machine/graph.py +++ b/resources/graphs/state_machine/graph.py @@ -353,3 +353,22 @@ class StateMachineGraph(DirectedGraph): self._edges[connecting_edge.get_name()] = connecting_edge return connecting_edge + + def remove_node(self, node_indentifier): + """ + Removes node from graph. + :param node_indentifier: Node or name of node to remove. + :return: Removed node. + """ + node = self.get_node(node_indentifier) + + # Remove initial state, if present. + if node.is_initial: + self._initial_states.pop(node.get_name()) + + # Remove final state, if present. + if node.is_final: + self._final_states.pop(node.get_name()) + + # Call parent implementation. + return super().remove_node(node_indentifier) -- GitLab