def generateList(packages=[]): """ Return a dictionary of all configurables, {package: {configurable: True/False/None} } input a list of packages to restrict the packages examined True: exists in Configurables and is instantiated OK False: exists in Configurables but fails to instantiate None: Exists in confDB but not in Configurables? """ from GaudiKernel.ConfigurableDb import cfgDb, loadConfigurableDb import Configurables #package : conf : Pass/Fail (True/False) retdict={} loadConfigurableDb() for name,conf in cfgDb.iteritems(): mypack=conf['package'] if len(packages) and mypack not in packages: continue if mypack not in retdict: retdict[mypack]={} retdict[mypack][name]=None if hasattr(Configurables, name): try: aConf=getattr(Configurables,name) if callable(aConf): aConf() else: raise TypeError(name+" is not callable, Configurables."+name+" evaluates as type "+str(type(aConf))) retdict[mypack][name]=True except Exception,e: import sys, traceback retdict[mypack][name]=False print >> sys.stderr, 'ERROR, cannot import/instantiate configurable', name, '\n-------\n', e.__class__, '\n-------' traceback.print_exc()
# ============ Auto-generated testing python file ====== from Gaudi.Configuration import * import Configurables from GaudiKernel.ConfigurableDb import cfgDb, loadConfigurableDb import sys, traceback ##### load all configurables of this package ##### loadConfigurableDb() for name,conf in cfgDb.iteritems(): if conf['package']=='HltL0Conf': if hasattr(Configurables,name): try: aConf=getattr(Configurables,name) aConf() except Exception, e: print >> sys.stderr, 'ERROR, cannot import/instantiate configurable', name, '\n-------\n', e.__class__, '\n-------' traceback.print_exc()