コード例 #1
0
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()
コード例 #2
0
# ============ 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()