def rm_edge(hie, g_id, parent, node1, node2):
"""remove an edge from a graph, and all the edges typed by it"""
if isinstance(hie.node[g_id], GraphNode):
lhs = nx.DiGraph()
lhs.add_node(node1)
lhs.add_node(node2)
lhs.add_edge(node1, node2)
ppp = nx.DiGraph()
ppp.add_node(node1)
ppp.add_node(node2)
rhs = nx.DiGraph()
rhs.add_node(node1)
rhs.add_node(node2)
rule = Rule(ppp, lhs, rhs)
_rewrite(hie, g_id, rule, {node1: node1, node2: node2})
elif isinstance(hie.node[g_id], RuleNode):
hie.node[g_id].rule.remove_edge_rhs(node1, node2)
else:
raise ValueError("node is neither a rule nor a graph")
评论列表
文章目录