Mercurial > hg > svgsitemap
diff svgsitemap/middleware.py @ 2:30d03e830354
compute line widths
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 28 Dec 2010 16:47:36 -0800 |
parents | 084088505eea |
children | 84344f9ed3f8 |
line wrap: on
line diff
--- a/svgsitemap/middleware.py Tue Dec 28 16:23:07 2010 -0800 +++ b/svgsitemap/middleware.py Tue Dec 28 16:47:36 2010 -0800 @@ -34,7 +34,8 @@ defaults = { 'name': '', 'hosts': '', 'external_referers': True, - 'maxwidth': 20 + 'maxwidth': 5, + 'minwidth': '0.01', # input/output 'file': None, # .ini file @@ -66,6 +67,7 @@ # sanity checks + data fixing assert self.output, "Please give an output file" assert self.file, "Cannot save file!" + self.maxwidth = float(self.maxwidth) if self.hosts: self.hosts = self.hosts.split() else: @@ -85,6 +87,7 @@ self.graph = AGraph(name=self.name, splines=False, directed=True) # make it pretty + self.graph.graph_attr['name'] = self.name self.graph.graph_attr['label'] = self.name self.graph.graph_attr['fontname'] = self.fontname self.graph.graph_attr['fontcolor'] = self.fontcolor @@ -144,14 +147,17 @@ self.edges[(from_url, to_url)] = count edge = self.graph.get_edge(from_url, to_url) edge.attr['label'] = str(count) - width = self.maxwidth * (count / self.max) - if not width: - width = 1 - edge.attr['style'] = 'setlinewidth(%d)' % width else: self.edges[(from_url, to_url)] = 1 self.graph.add_edge(from_url, to_url, label='1') + for edge in self.graph.edges(): + count = self.edges[(edge[0], edge[1])] + width = self.maxwidth * count / self.max + if not width: + width = self.minwidth + edge.attr['style'] = 'setlinewidth(%s)' % width + for url in from_url, to_url: node = self.graph.get_node(url) node.attr['label'] = url