comparison svgsitemap/middleware.py @ 10:1329127709de

remove orphans in a unique function
author Jeff Hammel <jhammel@mozilla.com>
date Sun, 02 Jan 2011 11:43:27 -0800
parents aa4eab6dc994
children 1ff7b363e89e
comparison
equal deleted inserted replaced
9:aa4eab6dc994 10:1329127709de
85 self.graph = AGraph(self.file, name=self.name, splines=False, directed=True) 85 self.graph = AGraph(self.file, name=self.name, splines=False, directed=True)
86 for edge in self.graph.edges(): 86 for edge in self.graph.edges():
87 if self.exclude(edge[0], edge[1]): 87 if self.exclude(edge[0], edge[1]):
88 self.graph.remove_edge(edge[0], edge[1]) 88 self.graph.remove_edge(edge[0], edge[1])
89 continue 89 continue
90
90 count = int(edge.attr['label']) 91 count = int(edge.attr['label'])
91 self.edges[(edge[0], edge[1])] = count 92 self.edges[(edge[0], edge[1])] = count
92 if count > self.max: 93 if count > self.max:
93 self.max = count 94 self.max = count
94 for node in self.graph.nodes(): 95 self.remove_orphans()
95 if not self.graph.neighbors(node) or self.exclude(node):
96 self.graph.remove_node(node)
97 self.set_widths() 96 self.set_widths()
98 self.graph.write(self.file)
99 self.graph.draw(self.output, prog='neato')
100 else: 97 else:
101 self.graph = AGraph(name=self.name, splines=False, directed=True) 98 self.graph = AGraph(name=self.name, splines=False, directed=True)
102 99
103 # make it pretty 100 # make it pretty
104 self.graph.graph_attr['name'] = self.name 101 self.graph.graph_attr['name'] = self.name
206 def save(self): 203 def save(self):
207 if self.file: 204 if self.file:
208 self.graph.write(self.file) 205 self.graph.write(self.file)
209 if self.output: 206 if self.output:
210 self.graph.draw(self.output, prog='neato') 207 self.graph.draw(self.output, prog='neato')
208
209 def remove_orphans(self):
210 flag = True
211 while flag:
212 flag = False
213 for node in self.graph.nodes():
214 if not self.graph.neighbors(node) or self.exclude(node):
215 flag = True
216 self.graph.remove_node(node)