|
Gaudi Framework, version v22r0 |
| Home | Generated: 9 Feb 2011 |
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 ConfigurableDb::getConfigurable | ( | className, | ||
requester = '', |
||||
assumeCxxClass = True | ||||
| ) |
Definition at line 143 of file ConfigurableDb.py.
00144 : 00145 confClass=className 00146 if assumeCxxClass: 00147 # assume className is C++: --> translate to python 00148 confClass = string.translate( confClass, _transtable ) 00149 # see if I have it in my dictionary 00150 confClassInfo = cfgDb.get(confClass) 00151 if not confClassInfo: 00152 confClassInfo = cfgDb.get(confClass) 00153 # get the python module 00154 confMod = confClassInfo and confClassInfo.get('module') 00155 if not confMod: 00156 log.warning( "%s: Class %s not in database", requester, className ) 00157 return None 00158 # load the module 00159 try: 00160 mod = __import__(confMod,globals(),locals(),confClass) 00161 except ImportError: 00162 log.warning( "%s: Module %s not found (needed for configurable %s)", 00163 requester, confMod, className ) 00164 return None 00165 # get the class 00166 try: 00167 confClass = getattr(mod,confClass) 00168 except AttributeError: 00169 log.warning( "%s: Configurable %s not found in module %s", 00170 requester, confClass, confMod ) 00171 return None 00172 # Got it! 00173 log.debug( "%s: Found configurable %s in module %s", 00174 requester, confClass, confMod ) 00175 00176 return confClass
| def 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 # speed-up: <project>_merged_confDb.py files are installed as : 00109 # "/some/path/InstallArea/[<CMTCONFIG>/]python/<project>_merged_confDb.py" 00110 # so why bother wandering in other directories ? 00111 if "InstallArea" in path: 00112 if is_zipfile(path): 00113 # turn filename syntax into module syntax: remove path+extension and replace / with . (dot) 00114 confDbModules = [ os.path.splitext(f)[0].replace('/','.') 00115 for f in ZipFile(path).namelist() 00116 if f.endswith("_merged_confDb.py") or f.endswith("_merged_confDb.pyc") ] 00117 else: 00118 # turn filename syntax into module syntax: remove path+extension and replace / with . (dot) 00119 confDbModules = [ os.path.splitext( f[len(path)+1:] )[0].replace(os.sep,'.') 00120 for f in glob(path_join(path, "*_merged_confDb.py")) 00121 if os.path.isfile(f) ] 00122 else: 00123 continue 00124 for confDbModule in confDbModules: 00125 nFiles += 1 00126 log.debug( "\t-importing [%s]..." % confDbModule ) 00127 try: 00128 mod = __import__( confDbModule ) 00129 except ImportError, err: 00130 log.warning( "Could not import module [%s] !", confDbModule ) 00131 log.warning( "Reason: %s", err ) 00132 pass 00133 else: 00134 # don't need to keep the module 00135 del mod 00136 pass 00137 pass # loop over sys.path 00138 log.debug( "importing confDb packages... [DONE]" ) 00139 nPkgs = len( set([k['package'] for k in cfgDb.values()]) ) 00140 log.debug( "imported %i confDb packages" % nPkgs ) 00141 return nFiles 00142
| list ConfigurableDb::__all__ = [ 'CfgDb', 'cfgDb', 'loadConfigurableDb', 'getConfigurable' ] |
Definition at line 10 of file ConfigurableDb.py.
| tuple ConfigurableDb::_transtable = string.maketrans('<>&*,: ().', '__rp__s___') |
Definition at line 13 of file ConfigurableDb.py.
| tuple ConfigurableDb::cfgDb = CfgDb() |
default name for CfgDb instance
Definition at line 89 of file ConfigurableDb.py.
| tuple ConfigurableDb::CfgDb = _Singleton() |
Definition at line 82 of file ConfigurableDb.py.
| tuple ConfigurableDb::log = logging.getLogger( 'ConfigurableDb' ) |
Definition at line 16 of file ConfigurableDb.py.