[docs]defwalk(self):fornodeinlist(self.graph.nodes()):try:r=self.handler(node)remove=FalseexceptRemoveNodeNotice:# we need to remove this noder=Noneremove=Trueifself._replace_nodes:ifremove:self.graph.remove_node(node)elifrisnotNoneandrisnotnode:in_edges=list(self.graph.in_edges(node,data=True))out_edges=list(self.graph.out_edges(node,data=True))self.graph.remove_node(node)self.graph.add_node(r)forsrc,_,datainin_edges:ifsrcisnode:self.graph.add_edge(r,r,**data)else:self.graph.add_edge(src,r,**data)for_,dst,datainout_edges:ifdstisnode:self.graph.add_edge(r,r,**data)else:self.graph.add_edge(r,dst,**data)