Gaudi Framework, version v23r4

Home   Generated: Mon Sep 17 2012
Classes | Functions | Variables

GaudiKernel::ConfigurableDb Namespace Reference

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

Function Documentation

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 


Variable Documentation

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.

Definition at line 82 of file ConfigurableDb.py.

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.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Mon Sep 17 2012 13:49:57 for Gaudi Framework, version v23r4 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004