Package amplee :: Package graph
[hide private]
[frames] | no frames]

Source Code for Package amplee.graph

 1  # -*- coding: utf-8 -*- 
 2   
 3  __docformat__ = 'epytext en' 
 4  __all__ = ['AtomGraph'] 
 5   
 6  from igraph import Graph 
 7   
8 -class AtomGraph(object):
9 - def process(feed, strategies):
10 feed.ownerDocument.xmlns_prefixes[u'app'] = u"http://www.w3.org/2007/app" 11 feed.ownerDocument.xmlns_prefixes[u'atom'] = u"http://www.w3.org/2005/Atom" 12 13 g = Graph() 14 g.add_vertices(len(feed.entry)-1) 15 16 entries = iter(feed.entry) 17 entry_ids = [] 18 for v in g.vs: 19 entry = entries.next() 20 entry_ids.append(unicode(entry.id)) 21 v['name'] = str(entry.id) 22 23 for strategy in strategies: 24 matrix = strategy.run(entry_ids, feed) 25 g.add_edges(matrix) 26 27 return g
28 process = staticmethod(process)
29 30 if __name__ == '__main__': 31 import amara 32 33 from amplee.graph.strategy.related import RelatedStrategy 34 g = AtomGraph.process(amara.parse('wikipedia_related_feed.atom').feed, 35 [RelatedStrategy]) 36 #g.to_directed() 37 g.write_svg('/tmp/graph.svg', 'kamada_kawai', labels='name', 38 width=800, height=800, vertex_size=2) 39