Mercurial > hg > svgsitemap
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) |