All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GaudiKernel.ConfigurableDb Namespace Reference

Classes

class  _CfgDb
 
class  _Singleton
 

Functions

def loadConfigurableDb
 Helper function to load all ConfigurableDb files holding informations. More...
 
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 More...
 

Function Documentation

def GaudiKernel.ConfigurableDb.getConfigurable (   className,
  requester = '',
  assumeCxxClass = True 
)

Definition at line 145 of file ConfigurableDb.py.

146 def getConfigurable( className, requester='', assumeCxxClass=True ):
147  confClass=className
148  if assumeCxxClass:
149  # assume className is C++: --> translate to python
150  confClass = string.translate( confClass, _transtable )
151  # see if I have it in my dictionary
152  confClassInfo = cfgDb.get(confClass)
153  if not confClassInfo:
154  confClassInfo = cfgDb.get(confClass)
155  # get the python module
156  confMod = confClassInfo and confClassInfo.get('module')
157  if not confMod:
158  log.warning( "%s: Class %s not in database", requester, className )
159  return None
160  # load the module
161  try:
162  mod = __import__(confMod,globals(),locals(),confClass)
163  except ImportError:
164  log.warning( "%s: Module %s not found (needed for configurable %s)",
165  requester, confMod, className )
166  return None
167  # get the class
168  try:
169  confClass = getattr(mod,confClass)
170  except AttributeError:
171  log.warning( "%s: Configurable %s not found in module %s",
172  requester, confClass, confMod )
173  return None
174  # Got it!
175  log.debug( "%s: Found configurable %s in module %s",
176  requester, confClass, confMod )
177 
178  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 106 of file ConfigurableDb.py.

107 def loadConfigurableDb():
108  """Helper function to load all ConfigurableDb files (modules) holding
109  informations about Configurables
110  """
111  import os
112  import sys
113  from glob import glob
114  from os.path import join as path_join
115  log.debug( "loading confDb files..." )
116  nFiles = 0 # counter of imported files
117  pathlist = os.getenv("LD_LIBRARY_PATH", "").split(os.pathsep)
118  for path in pathlist:
119  if not os.path.isdir(path):
120  continue
121  log.debug( "walking in [%s]...", path )
122  confDbFiles = [f for f in [path_join(path, f) for f in os.listdir(path)
123  if f.endswith('.confdb')]
124  if os.path.isfile(f)]
125  # check if we use "*_merged.confdb"
126  mergedConfDbFiles = [f for f in confDbFiles
127  if f.endswith('_merged.confdb')]
128  if mergedConfDbFiles:
129  # use only the merged ones
130  confDbFiles = mergedConfDbFiles
131 
132  for confDb in confDbFiles:
133  log.debug( "\t-loading [%s]...", confDb )
134  try:
135  cfgDb._loadModule( confDb )
136  except Exception, err:
137  log.warning( "Could not load file [%s] !", confDb )
138  log.warning( "Reason: %s", err )
139  nFiles += 1
140  log.debug( "loading confDb files... [DONE]" )
141  nPkgs = len( set([k['package'] for k in cfgDb.values()]) )
142  log.debug( "loaded %i confDb packages", nPkgs )
143  return nFiles
144 
def loadConfigurableDb
Helper function to load all ConfigurableDb files holding informations.

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.

tuple GaudiKernel.ConfigurableDb.CfgDb = _Singleton()

Definition at line 96 of file ConfigurableDb.py.

tuple GaudiKernel.ConfigurableDb.cfgDb = CfgDb()

default name for CfgDb instance

Definition at line 103 of file ConfigurableDb.py.

tuple GaudiKernel.ConfigurableDb.log = logging.getLogger( 'ConfigurableDb' )

Definition at line 16 of file ConfigurableDb.py.