# HG changeset patch # User Jeff Hammel # Date 1293997407 28800 # Node ID 1329127709de2bc68e8635323d22d6604778ba51 # Parent aa4eab6dc9943e9aad06f0315af0bb38d1bce640 remove orphans in a unique function diff -r aa4eab6dc994 -r 1329127709de svgsitemap/middleware.py --- a/svgsitemap/middleware.py Sun Jan 02 11:39:45 2011 -0800 +++ b/svgsitemap/middleware.py Sun Jan 02 11:43:27 2011 -0800 @@ -87,16 +87,13 @@ if self.exclude(edge[0], edge[1]): self.graph.remove_edge(edge[0], edge[1]) continue + count = int(edge.attr['label']) self.edges[(edge[0], edge[1])] = count if count > self.max: self.max = count - for node in self.graph.nodes(): - if not self.graph.neighbors(node) or self.exclude(node): - self.graph.remove_node(node) + self.remove_orphans() self.set_widths() - self.graph.write(self.file) - self.graph.draw(self.output, prog='neato') else: self.graph = AGraph(name=self.name, splines=False, directed=True) @@ -208,3 +205,12 @@ self.graph.write(self.file) if self.output: self.graph.draw(self.output, prog='neato') + + def remove_orphans(self): + flag = True + while flag: + flag = False + for node in self.graph.nodes(): + if not self.graph.neighbors(node) or self.exclude(node): + flag = True + self.graph.remove_node(node)