# HG changeset patch
# User Jeff Hammel <jhammel@mozilla.com>
# 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)