3 from graphAlgs
import Topological
6 from AthenaCommon.Logging
import logging
7 logger = logging.getLogger(__name__)
9 logger.setLevel(VERBOSE)
13 """algdata_from_menu uses a graph created from an L1Menu to created
14 an execution oredered sequence of AlgData objects. AlgData have
15 configuration information that is used to configure a GlobalSim
16 L1TopoAlgorithm AlgTool"""
18 from l1MenuGraph
import l1MenuGraph
23 for ad
in alg_data_list:
24 algname2sn[ad.name] = ad.sn
26 assert len(algname2sn) == len(alg_data_list)
31 roots = [algname2sn[name]
for name
in root_names]
38 roots = [i
for i
in range(1, G.V)]
44 logger.debug(
'G is a DAG:' +
str(topo_m.isDAG()))
45 order_sn = topo_m.order()
46 logger.debug(
'root nodes:' +
str(roots))
47 logger.debug(
'Topological order [' +
str(len(order_sn)) +
']')
48 logger.debug(
str(order_sn))
50 dot(G,
"G_ordered.dot", order_sn)
54 for ad
in alg_data_list:
55 sn2algData[ad.sn] = ad
57 assert len(sn2algData) == len(alg_data_list)
59 ordered_algs = [
'%d %s %s' % (i,
63 for e
in ordered_algs:
66 ordered_algData = [sn2algData[sn]
for sn
in order_sn]
67 logger.verbose(
'ordered_algData:[' +
str(len(ordered_algData))+
']:')
68 for ad
in ordered_algData:
69 logger.verbose(
str(ad))
71 return ordered_algData
73 if __name__ ==
'__main__':