|
Gaudi Framework, version v23r4 |
| Home | Generated: Mon Sep 17 2012 |
Classes | |
| class | _CfgDb |
| class | _Singleton |
Functions | |
| def | loadConfigurableDb |
| Helper function to load all ConfigurableDb files holding informations. | |
| def | getConfigurable |
Variables | |
| list | __all__ = [ 'CfgDb', 'cfgDb', 'loadConfigurableDb', 'getConfigurable' ] |
| tuple | _transtable = string.maketrans('<>&*,: ().', '__rp__s___') |
| tuple | log = logging.getLogger( 'ConfigurableDb' ) |
| tuple | CfgDb = _Singleton() |
| tuple | cfgDb = CfgDb() |
| default name for CfgDb instance | |
| def GaudiKernel::ConfigurableDb::getConfigurable | ( | className, | |
requester = '', |
|||
assumeCxxClass = True |
|||
| ) |
Definition at line 137 of file ConfigurableDb.py.
00138 : 00139 confClass=className 00140 if assumeCxxClass: 00141 # assume className is C++: --> translate to python 00142 confClass = string.translate( confClass, _transtable ) 00143 # see if I have it in my dictionary 00144 confClassInfo = cfgDb.get(confClass) 00145 if not confClassInfo: 00146 confClassInfo = cfgDb.get(confClass) 00147 # get the python module 00148 confMod = confClassInfo and confClassInfo.get('module') 00149 if not confMod: 00150 log.warning( "%s: Class %s not in database", requester, className ) 00151 return None 00152 # load the module 00153 try: 00154 mod = __import__(confMod,globals(),locals(),confClass) 00155 except ImportError: 00156 log.warning( "%s: Module %s not found (needed for configurable %s)", 00157 requester, confMod, className ) 00158 return None 00159 # get the class 00160 try: 00161 confClass = getattr(mod,confClass) 00162 except AttributeError: 00163 log.warning( "%s: Configurable %s not found in module %s", 00164 requester, confClass, confMod ) 00165 return None 00166 # Got it! 00167 log.debug( "%s: Found configurable %s in module %s", 00168 requester, confClass, confMod ) 00169 00170 return confClass
| def GaudiKernel::ConfigurableDb::loadConfigurableDb | ( | ) |
Helper function to load all ConfigurableDb files holding informations.
Helper function to load all ConfigurableDb files (modules) holding informations about Configurables
Definition at line 92 of file ConfigurableDb.py.
00093 : 00094 """Helper function to load all ConfigurableDb files (modules) holding 00095 informations about Configurables 00096 """ 00097 import os 00098 import sys 00099 from zipfile import is_zipfile, ZipFile 00100 from glob import glob 00101 from os.path import join as path_join 00102 log.debug( "importing confDb packages..." ) 00103 nFiles = 0 # counter of imported files 00104 for path in sys.path: 00105 log.debug( "walking in [%s]..." % path ) 00106 if not os.path.exists(path): 00107 continue 00108 if is_zipfile(path): 00109 # turn filename syntax into module syntax: remove path+extension and replace / with . (dot) 00110 confDbModules = [ os.path.splitext(f)[0].replace('/','.') 00111 for f in ZipFile(path).namelist() 00112 if f.endswith("_merged_confDb.py") or f.endswith("_merged_confDb.pyc") ] 00113 else: 00114 # turn filename syntax into module syntax: remove path+extension and replace / with . (dot) 00115 confDbModules = [ os.path.splitext( f[len(path)+1:] )[0].replace(os.sep,'.') 00116 for f in glob(path_join(path, "*_merged_confDb.py")) 00117 if os.path.isfile(f) ] 00118 for confDbModule in confDbModules: 00119 nFiles += 1 00120 log.debug( "\t-importing [%s]..." % confDbModule ) 00121 try: 00122 mod = __import__( confDbModule ) 00123 except ImportError, err: 00124 log.warning( "Could not import module [%s] !", confDbModule ) 00125 log.warning( "Reason: %s", err ) 00126 pass 00127 else: 00128 # don't need to keep the module 00129 del mod 00130 pass 00131 pass # loop over sys.path 00132 log.debug( "importing confDb packages... [DONE]" ) 00133 nPkgs = len( set([k['package'] for k in cfgDb.values()]) ) 00134 log.debug( "imported %i confDb packages" % nPkgs ) 00135 return nFiles 00136
| list GaudiKernel::ConfigurableDb::__all__ = [ 'CfgDb', 'cfgDb', 'loadConfigurableDb', 'getConfigurable' ] |
Definition at line 10 of file ConfigurableDb.py.
| tuple GaudiKernel::ConfigurableDb::_transtable = string.maketrans('<>&*,: ().', '__rp__s___') |
Definition at line 13 of file ConfigurableDb.py.
| tuple GaudiKernel::ConfigurableDb::CfgDb = _Singleton() |
Definition at line 82 of file ConfigurableDb.py.
| tuple GaudiKernel::ConfigurableDb::cfgDb = CfgDb() |
default name for CfgDb instance
Definition at line 89 of file ConfigurableDb.py.
| tuple GaudiKernel::ConfigurableDb::log = logging.getLogger( 'ConfigurableDb' ) |
Definition at line 16 of file ConfigurableDb.py.