The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
GaudiKernel.PropertyProxy.DataHandlePropertyProxy Class Reference
Inheritance diagram for GaudiKernel.PropertyProxy.DataHandlePropertyProxy:
Collaboration diagram for GaudiKernel.PropertyProxy.DataHandlePropertyProxy:

Public Member Functions

 __init__ (self, descr, docString, default)
 __get__ (self, obj, type=None)
 __set__ (self, obj, value)
 convertValueToBeSet (self, obj, value)
Public Member Functions inherited from GaudiKernel.PropertyProxy.PropertyProxy
 __init__ (self, descr, docString=None, default=None)
 setDefault (self, value)
 getDefault (self)
 fullPropertyName (self, obj)
 __get__ (self, obj, type=None)
 __set__ (self, obj, value)
 __delete__ (self, obj)

Additional Inherited Members

Public Attributes inherited from GaudiKernel.PropertyProxy.PropertyProxy
dict history = {}
 descr = descr
bool deprecated = False
Properties inherited from GaudiKernel.PropertyProxy.PropertyProxy
 default = property(getDefault, setDefault)

Detailed Description

Definition at line 411 of file PropertyProxy.py.

Constructor & Destructor Documentation

◆ __init__()

GaudiKernel.PropertyProxy.DataHandlePropertyProxy.__init__ ( self,
descr,
docString,
default )

Definition at line 412 of file PropertyProxy.py.

412 def __init__(self, descr, docString, default):
413 PropertyProxy.__init__(self, descr, docString, default)
414

Member Function Documentation

◆ __get__()

GaudiKernel.PropertyProxy.DataHandlePropertyProxy.__get__ ( self,
obj,
type = None )

Definition at line 415 of file PropertyProxy.py.

415 def __get__(self, obj, type=None):
416 try:
417 return self.descr.__get__(obj, type)
418 except AttributeError:
419 # Get default
420 try:
421 default = obj.__class__.getDefaultProperty(self.descr.__name__)
422 default = self.convertValueToBeSet(obj, default)
423 if default is not None:
424 self.__set__(obj, default)
425 except AttributeError as e:
426 # change type of exception to avoid false error message
427 raise RuntimeError(*e.args)
428
429 return self.descr.__get__(obj, type)
430

◆ __set__()

GaudiKernel.PropertyProxy.DataHandlePropertyProxy.__set__ ( self,
obj,
value )

Definition at line 431 of file PropertyProxy.py.

431 def __set__(self, obj, value):
432 if not obj._isInSetDefaults() or obj not in self.history:
433 value = self.convertValueToBeSet(obj, value)
434 # assign the value
435 self.descr.__set__(obj, value)
436 log.debug("Setting %s = %r", self.fullPropertyName(obj), value)
437 self.history.setdefault(obj, []).append(value)
438

◆ convertValueToBeSet()

GaudiKernel.PropertyProxy.DataHandlePropertyProxy.convertValueToBeSet ( self,
obj,
value )

Reimplemented in GaudiKernel.PropertyProxy.DataHandleVectorPropertyProxy.

Definition at line 439 of file PropertyProxy.py.

439 def convertValueToBeSet(self, obj, value):
440 if value is None:
441 value = ""
442
443 mode = obj.__class__.getDefaultProperty(self.descr.__name__).mode()
444 _type = obj.__class__.getDefaultProperty(self.descr.__name__).type()
445 if isinstance(value, str):
446 return DataHandle(value, mode, _type)
447 elif isinstance(value, DataHandle):
448 return DataHandle(value.__str__(), mode, _type)
449 else:
450 raise ValueError(
451 "received an instance of {}, but {} expected".format(
452 type(value), "str or DataHandle"
453 )
454 )
455
456
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition MsgStream.cpp:93

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