GaudiKernel.Configurable.ConfigurableUser Class Reference
Inheritance diagram for GaudiKernel.Configurable.ConfigurableUser:
Collaboration diagram for GaudiKernel.Configurable.ConfigurableUser:

Public Member Functions

def __init__ (self, name=Configurable.DefaultName, _enabled=True, kwargs)
 
def getGaudiType (self)
 
def getDlls (self)
 
def getHandle (self)
 
def __detach_used__ (self)
 
def propagateProperty
 
def propagateProperties
 
def __apply_configuration__ (self)
 
def applyConf (self)
 
def getUsedInstance (self, name)
 
def isApplicable (self)
 
def __init__ (self, name=Configurable.DefaultName, _enabled=True, kwargs)
 
def getGaudiType (self)
 
def getDlls (self)
 
def getHandle (self)
 
def __detach_used__ (self)
 
def propagateProperty
 
def propagateProperties
 
def __apply_configuration__ (self)
 
def applyConf (self)
 
def getUsedInstance (self, name)
 
def isApplicable (self)
 
- Public Member Functions inherited from GaudiKernel.Configurable.Configurable
def __new__ (cls, args, kwargs)
 
def __init__
 
def __getstate__ (self)
 
def __getnewargs__ (self)
 
def __setstate__ (self, dict)
 
def __len__ (self)
 
def __iter__ (self)
 
def __deepcopy__ (self, memo)
 
def __iadd__
 
def __getattr__ (self, attr)
 
def __setattr__ (self, name, value)
 
def __delattr__ (self, attr)
 
def __nonzero__ (self)
 
def remove (self, items)
 
def removeAll (self)
 
def copyChild (self, child)
 
def setParent (self, parentName)
 
def getParent (self)
 
def hasParent (self, parent)
 
def copyChildAndSetParent (self, cfg, parent)
 
def getChildren (self)
 
def getTools (self)
 
def children (self)
 
def getAllChildren (self)
 
def getSequence (self)
 
def setup (self)
 
def getProperties (self)
 
def getPropertiesWithDescription (self)
 
def getValuedProperties (self)
 
def properties (self)
 
def getDefaultProperties (cls)
 
def getDefaultProperty (cls, name)
 
def getProp (self, name)
 
def setProp (self, name, value)
 
def isPropertySet (self, name)
 
def getType (cls)
 
def getName (self)
 
def name (self)
 
def getJobOptName (self)
 
def isPublic (self)
 
def jobOptName (self)
 
def getFullName (self)
 
def getFullJobOptName (self)
 
def getPrintTitle (self)
 
def getTitleName (self)
 
def setDefaults (cls, handle)
 
def clone (self, name=None, kwargs)
 
def splitName (self)
 
def addTool
 
def __repr__ (self)
 
def __str__
 
def __new__ (cls, args, kwargs)
 
def __init__
 
def __getstate__ (self)
 
def __getnewargs__ (self)
 
def __setstate__ (self, dict)
 
def __len__ (self)
 
def __iter__ (self)
 
def __deepcopy__ (self, memo)
 
def __iadd__
 
def __getattr__ (self, attr)
 
def __setattr__ (self, name, value)
 
def __delattr__ (self, attr)
 
def __nonzero__ (self)
 
def remove (self, items)
 
def removeAll (self)
 
def copyChild (self, child)
 
def setParent (self, parentName)
 
def getParent (self)
 
def hasParent (self, parent)
 
def copyChildAndSetParent (self, cfg, parent)
 
def getChildren (self)
 
def getTools (self)
 
def children (self)
 
def getAllChildren (self)
 
def getSequence (self)
 
def setup (self)
 
def getProperties (self)
 
def getPropertiesWithDescription (self)
 
def getValuedProperties (self)
 
def properties (self)
 
def getDefaultProperties (cls)
 
def getDefaultProperty (cls, name)
 
def getProp (self, name)
 
def setProp (self, name, value)
 
def isPropertySet (self, name)
 
def getType (cls)
 
def getName (self)
 
def name (self)
 
def getJobOptName (self)
 
def isPublic (self)
 
def jobOptName (self)
 
def getFullName (self)
 
def getFullJobOptName (self)
 
def getPrintTitle (self)
 
def getTitleName (self)
 
def setDefaults (cls, handle)
 
def clone (self, name=None, kwargs)
 
def splitName (self)
 
def addTool
 
def __repr__ (self)
 
def __str__
 

Private Member Functions

def __addActiveUseOf (self, other)
 
def __addPassiveUseOf (self, other)
 
def _instanceName (self, cls)
 
def __addActiveUseOf (self, other)
 
def __addPassiveUseOf (self, other)
 
def _instanceName (self, cls)
 

Private Attributes

 _enabled
 
 __users__
 
 _applied
 
 __used_instances__
 

Static Private Attributes

dictionary __slots__
 
list __used_configurables__ = []
 list of ConfigurableUser classes this one is going to modify in the apply_configuration method. More...
 
list __queried_configurables__ = []
 list of ConfigurableUser classes this one is going to query in the apply_configuration method More...
 

Additional Inherited Members

- Static Public Attributes inherited from GaudiKernel.Configurable.Configurable
string indentUnit = '| '
 
int printHeaderWidth = 100
 
int printHeaderPre = 5
 
dictionary allConfigurables = {}
 
dictionary configurableServices = {}
 

Detailed Description

Definition at line 1131 of file Configurable.py.

Constructor & Destructor Documentation

def GaudiKernel.Configurable.ConfigurableUser.__init__ (   self,
  name = Configurable.DefaultName,
  _enabled = True,
  kwargs 
)

Definition at line 1148 of file Configurable.py.

1148  def __init__( self, name = Configurable.DefaultName, _enabled = True, **kwargs ):
1149  super( ConfigurableUser, self ).__init__( name )
1150  for n, v in kwargs.items():
1151  setattr(self, n, v)
1152  self._enabled = _enabled
1153  self.__users__ = []
1154  self._applied = False
1155 
1156  # Needed to retrieve the actual class if the declaration in __used_configurables__
1157  # and __queried_configurables__ is done with strings.
1158  from GaudiKernel.ConfigurableDb import getConfigurable as confDbGetConfigurable
1159 
1160  # Set the list of users of the used configurables
1161  #
1163  for used in self.__used_configurables__:
1164  # By default we want to use the default name of the instances
1165  # for the used configurables
1166  used_name = Configurable.DefaultName
1167  # If the entry in the list is a tuple, we need a named instance
1168  if type(used) is tuple:
1169  used, used_name = used # we re-set used to re-use the code below
1170  if not used_name:
1171  used_name = self._instanceName(used)
1172  # Check is 'used' is a string or not
1173  if type(used) is str:
1174  used_class = confDbGetConfigurable(used)
1175  else:
1176  used_class = used
1177  # Instantiate the configurable that we are going to use
1178  try:
1179  inst = used_class(name = used_name, _enabled = False)
1180  except AttributeError:
1181  # This cover the case where the used configurable is not a
1182  # ConfigurableUser instance, i.e. id doesn't have the attribute
1183  # '_enabled'.
1184  inst = used_class(name = used_name)
1185  self.__addActiveUseOf(inst)
1186  for queried in self.__queried_configurables__:
1187  try:
1188  if type(queried) is str:
1189  queried = confDbGetConfigurable(queried)
1190  inst = queried(_enabled = False)
1191  except AttributeError:
1192  inst = queried()
1193  self.__addPassiveUseOf(inst)
list __queried_configurables__
list of ConfigurableUser classes this one is going to query in the apply_configuration method ...
def __init__(self, name=Configurable.DefaultName, _enabled=True, kwargs)
list __used_configurables__
list of ConfigurableUser classes this one is going to modify in the apply_configuration method...
string type
Definition: gaudirun.py:151
def GaudiKernel.Configurable.ConfigurableUser.__init__ (   self,
  name = Configurable.DefaultName,
  _enabled = True,
  kwargs 
)

Definition at line 1148 of file Configurable.py.

1148  def __init__( self, name = Configurable.DefaultName, _enabled = True, **kwargs ):
1149  super( ConfigurableUser, self ).__init__( name )
1150  for n, v in kwargs.items():
1151  setattr(self, n, v)
1152  self._enabled = _enabled
1153  self.__users__ = []
1154  self._applied = False
1155 
1156  # Needed to retrieve the actual class if the declaration in __used_configurables__
1157  # and __queried_configurables__ is done with strings.
1158  from GaudiKernel.ConfigurableDb import getConfigurable as confDbGetConfigurable
1159 
1160  # Set the list of users of the used configurables
1161  #
1163  for used in self.__used_configurables__:
1164  # By default we want to use the default name of the instances
1165  # for the used configurables
1166  used_name = Configurable.DefaultName
1167  # If the entry in the list is a tuple, we need a named instance
1168  if type(used) is tuple:
1169  used, used_name = used # we re-set used to re-use the code below
1170  if not used_name:
1171  used_name = self._instanceName(used)
1172  # Check is 'used' is a string or not
1173  if type(used) is str:
1174  used_class = confDbGetConfigurable(used)
1175  else:
1176  used_class = used
1177  # Instantiate the configurable that we are going to use
1178  try:
1179  inst = used_class(name = used_name, _enabled = False)
1180  except AttributeError:
1181  # This cover the case where the used configurable is not a
1182  # ConfigurableUser instance, i.e. id doesn't have the attribute
1183  # '_enabled'.
1184  inst = used_class(name = used_name)
1185  self.__addActiveUseOf(inst)
1186  for queried in self.__queried_configurables__:
1187  try:
1188  if type(queried) is str:
1189  queried = confDbGetConfigurable(queried)
1190  inst = queried(_enabled = False)
1191  except AttributeError:
1192  inst = queried()
1193  self.__addPassiveUseOf(inst)
list __queried_configurables__
list of ConfigurableUser classes this one is going to query in the apply_configuration method ...
def __init__(self, name=Configurable.DefaultName, _enabled=True, kwargs)
list __used_configurables__
list of ConfigurableUser classes this one is going to modify in the apply_configuration method...
string type
Definition: gaudirun.py:151

Member Function Documentation

def GaudiKernel.Configurable.ConfigurableUser.__addActiveUseOf (   self,
  other 
)
private
Declare that we are going to modify the Configurable 'other' in our
__apply_configuration__.

Definition at line 1194 of file Configurable.py.

1194  def __addActiveUseOf(self, other):
1195  """
1196  Declare that we are going to modify the Configurable 'other' in our
1197  __apply_configuration__.
1198  """
1199  self.__used_instances__.append(other)
1200  if hasattr(other, "__users__"): # allow usage of plain Configurables
1201  other.__users__.append(self)
def GaudiKernel.Configurable.ConfigurableUser.__addActiveUseOf (   self,
  other 
)
private
Declare that we are going to modify the Configurable 'other' in our
__apply_configuration__.

Definition at line 1194 of file Configurable.py.

1194  def __addActiveUseOf(self, other):
1195  """
1196  Declare that we are going to modify the Configurable 'other' in our
1197  __apply_configuration__.
1198  """
1199  self.__used_instances__.append(other)
1200  if hasattr(other, "__users__"): # allow usage of plain Configurables
1201  other.__users__.append(self)
def GaudiKernel.Configurable.ConfigurableUser.__addPassiveUseOf (   self,
  other 
)
private
Declare that we are going to retrieve property values from the
ConfigurableUser 'other' in our __apply_configuration__.

Definition at line 1202 of file Configurable.py.

1202  def __addPassiveUseOf(self, other):
1203  """
1204  Declare that we are going to retrieve property values from the
1205  ConfigurableUser 'other' in our __apply_configuration__.
1206  """
1207  if not isinstance(other, ConfigurableUser):
1208  raise Error("'%s': Cannot make passive use of '%s', it is not a ConfigurableUser" % (self.name(), other.name()))
1209  other.__addActiveUseOf(self)
def GaudiKernel.Configurable.ConfigurableUser.__addPassiveUseOf (   self,
  other 
)
private
Declare that we are going to retrieve property values from the
ConfigurableUser 'other' in our __apply_configuration__.

Definition at line 1202 of file Configurable.py.

1202  def __addPassiveUseOf(self, other):
1203  """
1204  Declare that we are going to retrieve property values from the
1205  ConfigurableUser 'other' in our __apply_configuration__.
1206  """
1207  if not isinstance(other, ConfigurableUser):
1208  raise Error("'%s': Cannot make passive use of '%s', it is not a ConfigurableUser" % (self.name(), other.name()))
1209  other.__addActiveUseOf(self)
def GaudiKernel.Configurable.ConfigurableUser.__apply_configuration__ (   self)
Function to be overridden to convert the high level configuration into a
low level one.
The default implementation calls applyConf, which is the method defined
in some ConfigurableUser implementations.

Definition at line 1286 of file Configurable.py.

1287  """
1288  Function to be overridden to convert the high level configuration into a
1289  low level one.
1290  The default implementation calls applyConf, which is the method defined
1291  in some ConfigurableUser implementations.
1292  """
1293  return self.applyConf()
1294 
def GaudiKernel.Configurable.ConfigurableUser.__apply_configuration__ (   self)
Function to be overridden to convert the high level configuration into a
low level one.
The default implementation calls applyConf, which is the method defined
in some ConfigurableUser implementations.

Definition at line 1286 of file Configurable.py.

1287  """
1288  Function to be overridden to convert the high level configuration into a
1289  low level one.
1290  The default implementation calls applyConf, which is the method defined
1291  in some ConfigurableUser implementations.
1292  """
1293  return self.applyConf()
1294 
def GaudiKernel.Configurable.ConfigurableUser.__detach_used__ (   self)
Remove this ConfigurableUser instance from the users list of the used
instances.

Definition at line 1217 of file Configurable.py.

1217  def __detach_used__(self):
1218  """
1219  Remove this ConfigurableUser instance from the users list of the used
1220  instances.
1221  """
1222  for used in self.__used_instances__:
1223  if hasattr(used, "__users__"): # allow usage of plain Configurables
1224  used.__users__.remove(self)
1225 
def GaudiKernel.Configurable.ConfigurableUser.__detach_used__ (   self)
Remove this ConfigurableUser instance from the users list of the used
instances.

Definition at line 1217 of file Configurable.py.

1217  def __detach_used__(self):
1218  """
1219  Remove this ConfigurableUser instance from the users list of the used
1220  instances.
1221  """
1222  for used in self.__used_instances__:
1223  if hasattr(used, "__users__"): # allow usage of plain Configurables
1224  used.__users__.remove(self)
1225 
def GaudiKernel.Configurable.ConfigurableUser._instanceName (   self,
  cls 
)
private
Function used to define the name of the private instance of a given class
name.
This method is used when the __used_configurables_property__ declares the
need of a private used configurable without specifying the name.

Definition at line 1302 of file Configurable.py.

1302  def _instanceName(self, cls):
1303  """
1304  Function used to define the name of the private instance of a given class
1305  name.
1306  This method is used when the __used_configurables_property__ declares the
1307  need of a private used configurable without specifying the name.
1308  """
1309  if type(cls) is str:
1310  clName = cls
1311  else:
1312  clName = cls.__name__
1313  return "%s_%s" % (self.name(), clName)
1314 
string type
Definition: gaudirun.py:151
def GaudiKernel.Configurable.ConfigurableUser._instanceName (   self,
  cls 
)
private
Function used to define the name of the private instance of a given class
name.
This method is used when the __used_configurables_property__ declares the
need of a private used configurable without specifying the name.

Definition at line 1302 of file Configurable.py.

1302  def _instanceName(self, cls):
1303  """
1304  Function used to define the name of the private instance of a given class
1305  name.
1306  This method is used when the __used_configurables_property__ declares the
1307  need of a private used configurable without specifying the name.
1308  """
1309  if type(cls) is str:
1310  clName = cls
1311  else:
1312  clName = cls.__name__
1313  return "%s_%s" % (self.name(), clName)
1314 
string type
Definition: gaudirun.py:151
def GaudiKernel.Configurable.ConfigurableUser.applyConf (   self)
Function to be overridden to convert the high level configuration into a
low level one.

Definition at line 1295 of file Configurable.py.

1295  def applyConf( self ):
1296  """
1297  Function to be overridden to convert the high level configuration into a
1298  low level one.
1299  """
1300  pass
1301 
def GaudiKernel.Configurable.ConfigurableUser.applyConf (   self)
Function to be overridden to convert the high level configuration into a
low level one.

Definition at line 1295 of file Configurable.py.

1295  def applyConf( self ):
1296  """
1297  Function to be overridden to convert the high level configuration into a
1298  low level one.
1299  """
1300  pass
1301 
def GaudiKernel.Configurable.ConfigurableUser.getDlls (   self)

Definition at line 1212 of file Configurable.py.

1212  def getDlls( self ):
1213  return None
def GaudiKernel.Configurable.ConfigurableUser.getDlls (   self)

Definition at line 1212 of file Configurable.py.

1212  def getDlls( self ):
1213  return None
def GaudiKernel.Configurable.ConfigurableUser.getGaudiType (   self)

Definition at line 1210 of file Configurable.py.

1210  def getGaudiType( self ):
1211  return 'User'
def GaudiKernel.Configurable.ConfigurableUser.getGaudiType (   self)

Definition at line 1210 of file Configurable.py.

1210  def getGaudiType( self ):
1211  return 'User'
def GaudiKernel.Configurable.ConfigurableUser.getHandle (   self)

Definition at line 1214 of file Configurable.py.

1214  def getHandle( self ):
1215  return None
1216 
def GaudiKernel.Configurable.ConfigurableUser.getHandle (   self)

Definition at line 1214 of file Configurable.py.

1214  def getHandle( self ):
1215  return None
1216 
def GaudiKernel.Configurable.ConfigurableUser.getUsedInstance (   self,
  name 
)
Return the used instance with a given name.

Definition at line 1315 of file Configurable.py.

1315  def getUsedInstance(self, name):
1316  """
1317  Return the used instance with a given name.
1318  """
1319  for i in self.__used_instances__:
1320  if i.name() == name:
1321  if hasattr(i, "_enabled"):
1322  # ensure that the instances retrieved through the method are
1323  # enabled
1324  i._enabled = True
1325  return i
1326  raise KeyError(name)
1327 
def GaudiKernel.Configurable.ConfigurableUser.getUsedInstance (   self,
  name 
)
Return the used instance with a given name.

Definition at line 1315 of file Configurable.py.

1315  def getUsedInstance(self, name):
1316  """
1317  Return the used instance with a given name.
1318  """
1319  for i in self.__used_instances__:
1320  if i.name() == name:
1321  if hasattr(i, "_enabled"):
1322  # ensure that the instances retrieved through the method are
1323  # enabled
1324  i._enabled = True
1325  return i
1326  raise KeyError(name)
1327 
def GaudiKernel.Configurable.ConfigurableUser.isApplicable (   self)
Return True is the instance can be "applied".

Definition at line 1328 of file Configurable.py.

1328  def isApplicable(self):
1329  '''
1330  Return True is the instance can be "applied".
1331  '''
1332  return (not self.__users__) and (not self._applied)
1333 
1334 
1335 # list of callables to be called after all the __apply_configuration__ are called.
def GaudiKernel.Configurable.ConfigurableUser.isApplicable (   self)
Return True is the instance can be "applied".

Definition at line 1328 of file Configurable.py.

1328  def isApplicable(self):
1329  '''
1330  Return True is the instance can be "applied".
1331  '''
1332  return (not self.__users__) and (not self._applied)
1333 
1334 
1335 # list of callables to be called after all the __apply_configuration__ are called.
def GaudiKernel.Configurable.ConfigurableUser.propagateProperties (   self,
  names = None,
  others = None,
  force = True 
)
Call propagateProperty for each property listed in 'names'.
If 'names' is None, all the properties are propagated.

Definition at line 1275 of file Configurable.py.

1275  def propagateProperties(self, names = None, others = None, force = True):
1276  """
1277  Call propagateProperty for each property listed in 'names'.
1278  If 'names' is None, all the properties are propagated.
1279  """
1280  if names is None:
1281  # use all the non-private slots
1282  names = [ p for p in self.__slots__ if not p.startswith("_") ]
1283  for n in names:
1284  self.propagateProperty(n, others, force)
1285 
def GaudiKernel.Configurable.ConfigurableUser.propagateProperties (   self,
  names = None,
  others = None,
  force = True 
)
Call propagateProperty for each property listed in 'names'.
If 'names' is None, all the properties are propagated.

Definition at line 1275 of file Configurable.py.

1275  def propagateProperties(self, names = None, others = None, force = True):
1276  """
1277  Call propagateProperty for each property listed in 'names'.
1278  If 'names' is None, all the properties are propagated.
1279  """
1280  if names is None:
1281  # use all the non-private slots
1282  names = [ p for p in self.__slots__ if not p.startswith("_") ]
1283  for n in names:
1284  self.propagateProperty(n, others, force)
1285 
def GaudiKernel.Configurable.ConfigurableUser.propagateProperty (   self,
  name,
  others = None,
  force = True 
)
Propagate the property 'name' (if set) to other configurables (if possible).
'others' can be:
    None:
propagate to all the entries in __used_configurables__
    a configurable instance:
propagate only to it
    list of configurable instances:
propagate to all of them.


The logic is:
- if the local property is set, the other property will be overwritten
- local property not set and other set => keep other
- local property not set and other not set => overwrite the default for
    ConfigurableUser instances and set the property for Configurables

Definition at line 1226 of file Configurable.py.

1226  def propagateProperty(self, name, others = None, force = True):
1227  """
1228  Propagate the property 'name' (if set) to other configurables (if possible).
1229  'others' can be:
1230  None:
1231  propagate to all the entries in __used_configurables__
1232  a configurable instance:
1233  propagate only to it
1234  list of configurable instances:
1235  propagate to all of them.
1236 
1237 
1238  The logic is:
1239  - if the local property is set, the other property will be overwritten
1240  - local property not set and other set => keep other
1241  - local property not set and other not set => overwrite the default for
1242  ConfigurableUser instances and set the property for Configurables
1243  """
1244  # transform 'others' to a list of configurable instances
1245  if others is None:
1246  others = self.__used_instances__
1247  elif type(others) not in [ list, tuple ] :
1248  others = [ others ]
1249  # these can be computed before the loop
1250  local_is_set = self.isPropertySet(name)
1251  value = self.getProp(name)
1252  # loop over the others that do have 'name' in their slots
1253  for other in [ o for o in others if name in o.__slots__ ]:
1254  # If self property is set, use it
1255  if local_is_set:
1256  if other.isPropertySet(name):
1257  log.warning("Property '%(prop)s' is set in both '%(self)s' and '%(other)s', using '%(self)s.%(prop)s'"%
1258  { "self": self.name(),
1259  "other": other.name(),
1260  "prop": name } )
1261  other.setProp(name, value)
1262  # If not, and other property also not set, propagate the default
1263  elif not other.isPropertySet(name):
1264  if isinstance(other,ConfigurableUser):
1265  otherType = type(other._properties[name].getDefault())
1266  other._properties[name].setDefault(value)
1267  if otherType in [list, dict]:
1268  # Special case for list and dictionaries:
1269  # also set the property to the same value of the default (copy)
1270  other.setProp(name, otherType(value))
1271  else:
1272  other.setProp(name, value)
1273  # If not set and other set, do nothing
1274 
string type
Definition: gaudirun.py:151
def GaudiKernel.Configurable.ConfigurableUser.propagateProperty (   self,
  name,
  others = None,
  force = True 
)
Propagate the property 'name' (if set) to other configurables (if possible).
'others' can be:
    None:
propagate to all the entries in __used_configurables__
    a configurable instance:
propagate only to it
    list of configurable instances:
propagate to all of them.


The logic is:
- if the local property is set, the other property will be overwritten
- local property not set and other set => keep other
- local property not set and other not set => overwrite the default for
    ConfigurableUser instances and set the property for Configurables

Definition at line 1226 of file Configurable.py.

1226  def propagateProperty(self, name, others = None, force = True):
1227  """
1228  Propagate the property 'name' (if set) to other configurables (if possible).
1229  'others' can be:
1230  None:
1231  propagate to all the entries in __used_configurables__
1232  a configurable instance:
1233  propagate only to it
1234  list of configurable instances:
1235  propagate to all of them.
1236 
1237 
1238  The logic is:
1239  - if the local property is set, the other property will be overwritten
1240  - local property not set and other set => keep other
1241  - local property not set and other not set => overwrite the default for
1242  ConfigurableUser instances and set the property for Configurables
1243  """
1244  # transform 'others' to a list of configurable instances
1245  if others is None:
1246  others = self.__used_instances__
1247  elif type(others) not in [ list, tuple ] :
1248  others = [ others ]
1249  # these can be computed before the loop
1250  local_is_set = self.isPropertySet(name)
1251  value = self.getProp(name)
1252  # loop over the others that do have 'name' in their slots
1253  for other in [ o for o in others if name in o.__slots__ ]:
1254  # If self property is set, use it
1255  if local_is_set:
1256  if other.isPropertySet(name):
1257  log.warning("Property '%(prop)s' is set in both '%(self)s' and '%(other)s', using '%(self)s.%(prop)s'"%
1258  { "self": self.name(),
1259  "other": other.name(),
1260  "prop": name } )
1261  other.setProp(name, value)
1262  # If not, and other property also not set, propagate the default
1263  elif not other.isPropertySet(name):
1264  if isinstance(other,ConfigurableUser):
1265  otherType = type(other._properties[name].getDefault())
1266  other._properties[name].setDefault(value)
1267  if otherType in [list, dict]:
1268  # Special case for list and dictionaries:
1269  # also set the property to the same value of the default (copy)
1270  other.setProp(name, otherType(value))
1271  else:
1272  other.setProp(name, value)
1273  # If not set and other set, do nothing
1274 
string type
Definition: gaudirun.py:151

Member Data Documentation

list GaudiKernel.Configurable.ConfigurableUser.__queried_configurables__ = []
staticprivate

list of ConfigurableUser classes this one is going to query in the apply_configuration method

Definition at line 1147 of file Configurable.py.

dictionary GaudiKernel.Configurable.ConfigurableUser.__slots__
staticprivate
Initial value:
1 = { "__users__": [],
2  "__used_instances__": [],
3  "_enabled": True,
4  "_applied": False }

Definition at line 1132 of file Configurable.py.

list GaudiKernel.Configurable.ConfigurableUser.__used_configurables__ = []
staticprivate

list of ConfigurableUser classes this one is going to modify in the apply_configuration method.

The list may contain class objects, strings representing class objects or tuples with the class object (or a string) as first element and the instance name as second element. If the instance name is None or not present, the function instanceName() is used to determine the name of the instance (the default implementation returns "<this name></em><other name>".

Definition at line 1144 of file Configurable.py.

GaudiKernel.Configurable.ConfigurableUser.__used_instances__
private

Definition at line 1162 of file Configurable.py.

GaudiKernel.Configurable.ConfigurableUser.__users__
private

Definition at line 1153 of file Configurable.py.

GaudiKernel.Configurable.ConfigurableUser._applied
private

Definition at line 1154 of file Configurable.py.

GaudiKernel.Configurable.ConfigurableUser._enabled
private

Definition at line 1152 of file Configurable.py.


The documentation for this class was generated from the following file: