Public Member Functions | |
def | __init__ |
def | setDefault |
def | getDefault |
def | fullPropertyName |
def | __get__ |
def | __set__ |
def | __delete__ |
Public Attributes | |
history | |
descr | |
default | |
Static Public Attributes | |
tuple | default = property( getDefault, setDefault ) |
Private Attributes | |
__doc__ | |
__default |
Definition at line 61 of file PropertyProxy.py.
def PropertyProxy::PropertyProxy::__init__ | ( | self, | ||
descr, | ||||
docString = None , |
||||
default = None | ||||
) |
Reimplemented in PropertyProxy::GaudiHandlePropertyProxy, and PropertyProxy::GaudiHandleArrayPropertyProxy.
Definition at line 62 of file PropertyProxy.py.
00062 : 00063 self.history = {} 00064 self.descr = descr 00065 if docString: 00066 self.__doc__ = docString 00067 if default is not None: 00068 self.default = default 00069 00070 def setDefault( self, value ):
def PropertyProxy::PropertyProxy::setDefault | ( | self, | ||
value | ||||
) |
Definition at line 71 of file PropertyProxy.py.
00071 : 00072 self.__default = value 00073 def getDefault( self ):
def PropertyProxy::PropertyProxy::getDefault | ( | self | ) |
def PropertyProxy::PropertyProxy::fullPropertyName | ( | self, | ||
obj | ||||
) |
Definition at line 79 of file PropertyProxy.py.
00079 : 00080 return (obj.getJobOptName() or obj.getName()) + '.' + self.descr.__name__ 00081 def __get__( self, obj, type = None ):
def PropertyProxy::PropertyProxy::__get__ | ( | self, | ||
obj, | ||||
type = None | ||||
) |
Reimplemented in PropertyProxy::GaudiHandlePropertyProxyBase.
Definition at line 82 of file PropertyProxy.py.
00082 : 00083 try: 00084 return self.descr.__get__( obj, type ) 00085 except AttributeError: 00086 # special case for lists and dictionaries: 00087 # allow default to work with on += and [] 00088 if self.__default.__class__ in [ list, dict ]: 00089 self.descr.__set__( obj, self.__default.__class__(self.__default) ) 00090 return self.descr.__get__( obj, type ) 00091 else: 00092 # for non lists (or dicts) return a reference to the default 00093 #return self.__default 00094 raise 00095 def __set__( self, obj, value ):
def PropertyProxy::PropertyProxy::__set__ | ( | self, | ||
obj, | ||||
value | ||||
) |
Reimplemented in PropertyProxy::GaudiHandlePropertyProxyBase.
Definition at line 96 of file PropertyProxy.py.
00096 : 00097 # check value/property compatibility if possible 00098 proptype, allowcompat = None, False 00099 if hasattr( self, 'default' ): 00100 proptype = type(self.default) 00101 if self.descr.__name__ == 'OutputLevel': # old-style compat for Btag 00102 allowcompat = True 00103 elif obj in self.history: 00104 proptype = type( self.history[ obj ][ 0 ] ) 00105 allowcompat = True 00106 00107 # check if type known; allow special initializer for typed instances 00108 # Do not perform the check for PropertyReference, should be delayed until 00109 # binding (if ever done) 00110 if proptype and proptype != type(None) and \ 00111 not derives_from(value, 'PropertyReference'): 00112 try: 00113 # check value itself 00114 value = _isCompatible( proptype, value ) 00115 00116 # check element in case of list 00117 if proptype == list: 00118 try: 00119 oldvec = self.descr.__get__( obj, type ) 00120 if oldvec: 00121 tpo = type(oldvec[0]) 00122 for v in value: 00123 _isCompatible( tpo, v ) 00124 except AttributeError: 00125 # value not yet set 00126 pass 00127 except ValueError, e: 00128 if allowcompat: 00129 log.error( 'inconsistent value types for %s.%s (%s)' %\ 00130 (obj.getName(),self.descr.__name__,str(e)) ) 00131 else: 00132 raise 00133 00134 # allow a property to be set if we're in non-default mode, or if it 00135 # simply hasn't been set before 00136 if not obj._isInSetDefaults() or not obj in self.history: 00137 # by convention, 'None' for default is used to designate objects setting 00138 if hasattr( self, 'default' ) and self.default == None: 00139 obj.__iadd__( value, self.descr ) # to establish hierarchy 00140 else: 00141 self.descr.__set__( obj, value ) 00142 self.history.setdefault( obj, [] ).append( value ) 00143 def __delete__( self, obj ):
def PropertyProxy::PropertyProxy::__delete__ | ( | self, | ||
obj | ||||
) |
Definition at line 144 of file PropertyProxy.py.
00144 : 00145 if obj in self.history: 00146 del self.history[ obj ] 00147 self.descr.__delete__( obj ) 00148 00149 00150 class GaudiHandlePropertyProxyBase(PropertyProxy):
tuple PropertyProxy::PropertyProxy::default = property( getDefault, setDefault ) [static] |
Definition at line 77 of file PropertyProxy.py.
Definition at line 63 of file PropertyProxy.py.
Definition at line 64 of file PropertyProxy.py.
PropertyProxy::PropertyProxy::__doc__ [private] |
Definition at line 66 of file PropertyProxy.py.
Definition at line 68 of file PropertyProxy.py.
PropertyProxy::PropertyProxy::__default [private] |
Definition at line 72 of file PropertyProxy.py.