[FIX] tools.graph: stop useless recursions to make graph_get() faster
In some cases (depending on the kind of graph being rendered), the recursive processing could lead to timings of 1 minute per call to ir.ui.view.graph_get(), even for a relatively small number of nodes (e.g. 10). By avoiding useless recursions in head_component() it goes down to a few ms. This patch also adds str() wrappers for __str__ and printing of nodes labels, which are not necessarily strings (they are often integers) bzr revid: odo@openerp.com-20110315181019-3pi3j0ojg33wtv3z
This commit is contained in:
+5
-5
@@ -147,9 +147,9 @@ class graph(object):
|
||||
if node not in self.head_nodes:
|
||||
self.head_nodes.append(node)
|
||||
|
||||
for edge in rest_edges:
|
||||
if edge[0]==node:
|
||||
self.head_component(edge[1],rest_edges)
|
||||
for edge in rest_edges:
|
||||
if edge[0]==node:
|
||||
self.head_component(edge[1],rest_edges)
|
||||
|
||||
|
||||
def process_ranking(self, node, level=0):
|
||||
@@ -709,7 +709,7 @@ class graph(object):
|
||||
for l in self.levels:
|
||||
result += 'PosY: ' + str(l) + '\n'
|
||||
for node in self.levels[l]:
|
||||
result += '\tPosX: '+ str(self.result[node]['y']) + ' - Node:' + node + "\n"
|
||||
result += '\tPosX: '+ str(self.result[node]['y']) + ' - Node:' + str(node) + "\n"
|
||||
return result
|
||||
|
||||
|
||||
@@ -772,7 +772,7 @@ if __name__=='__main__':
|
||||
for name,node in node_res.items():
|
||||
|
||||
draw.arc( (int(node['y']-radius), int(node['x']-radius),int(node['y']+radius), int(node['x']+radius) ), 0, 360, (128,128,128))
|
||||
draw.text( (int(node['y']), int(node['x'])), name, (128,128,128))
|
||||
draw.text( (int(node['y']), int(node['x'])), str(name), (128,128,128))
|
||||
|
||||
|
||||
for t in transitions:
|
||||
|
||||
Reference in New Issue
Block a user