Public Member Functions | |
def | __init__ |
def | getInterface |
def | retrieveInterface |
def | __call_interface_method__ |
def | __setattr__ |
def | __getattr__ |
def | properties |
def | name |
Python equivalent to the C++ Property interface
Definition at line 155 of file Bindings.py.
def GaudiPython::Bindings::iProperty::__init__ | ( | self, | ||
name, | ||||
ip = None | ||||
) |
Reimplemented in GaudiPython::Bindings::iService, GaudiPython::Bindings::iAlgorithm, GaudiPython::Bindings::iAlgTool, GaudiPython::Bindings::iDataSvc, GaudiPython::Bindings::iHistogramSvc, GaudiPython::Bindings::iNTupleSvc, GaudiPython::Bindings::iToolSvc, and GaudiPython::Bindings::iJobOptSvc.
Definition at line 157 of file Bindings.py.
00157 : 00158 if ip : self.__dict__['_ip'] = InterfaceCast(gbl.IProperty)(ip) 00159 else : self.__dict__['_ip'] = None 00160 self.__dict__['_svcloc'] = gbl.Gaudi.svcLocator() 00161 optsvc = Helper.service(self._svcloc,'JobOptionsSvc') 00162 if optsvc : self.__dict__['_optsvc'] = InterfaceCast(gbl.IJobOptionsSvc)(optsvc) 00163 else : self.__dict__['_optsvc'] = None 00164 self.__dict__['_name'] = name def getInterface(self) :
def GaudiPython::Bindings::iProperty::getInterface | ( | self | ) |
Definition at line 165 of file Bindings.py.
00165 : 00166 if not self._ip : self.retrieveInterface() 00167 return self._ip def retrieveInterface(self) :
def GaudiPython::Bindings::iProperty::retrieveInterface | ( | self | ) |
Reimplemented in GaudiPython::Bindings::iService, GaudiPython::Bindings::iAlgorithm, and GaudiPython::Bindings::iAlgTool.
Definition at line 168 of file Bindings.py.
00168 : 00169 pass def __call_interface_method__(self,ifname,method,*args):
def GaudiPython::Bindings::iProperty::__call_interface_method__ | ( | self, | ||
ifname, | ||||
method, | ||||
args | ||||
) |
Definition at line 170 of file Bindings.py.
00170 : 00171 if not getattr(self,ifname) : self.retrieveInterface() 00172 return getattr(getattr(self,ifname),method)(*args) def __setattr__(self, name, value):
def GaudiPython::Bindings::iProperty::__setattr__ | ( | self, | ||
name, | ||||
value | ||||
) |
The method which is used for setting the property from the given value. - In the case of the valid instance it sets the property through IProperty interface - In the case of placeholder the property is added to JobOptionsCatalogue
Definition at line 173 of file Bindings.py.
00173 : 00174 """ 00175 The method which is used for setting the property from the given value. 00176 - In the case of the valid instance it sets the property through IProperty interface 00177 - In the case of placeholder the property is added to JobOptionsCatalogue 00178 """ 00179 if hasattr( value, 'toStringProperty' ): 00180 # user defined behaviour 00181 value = '%s' % value.toStringProperty() 00182 ip = self.getInterface() 00183 if ip : 00184 if not gbl.Gaudi.Utils.hasProperty ( ip , name ) : 00185 raise AttributeError, 'property %s does not exist' % name 00186 prop = ip.getProperty(name) 00187 if not type( value ) == type( prop.value() ) : 00188 if not long == type( value ) : value = '%s' % value 00189 else : value = '%d' % value 00190 if prop.fromString( value ).isFailure() : 00191 raise AttributeError, 'property %s could not be set from %s' % (name,value) 00192 else : 00193 if not prop.setValue( value ) : 00194 raise AttributeError, 'property %s could not be set from %s' % (name,value) 00195 else : 00196 if type(value) == str : value = '"%s"' % value # need double quotes 00197 elif type(value) == long: value = '%d' % value # prevent pending 'L' 00198 sp = StringProperty( name , str(value)) 00199 self._optsvc.addPropertyToCatalogue( self._name , sp ) def __getattr__(self, name ):
def GaudiPython::Bindings::iProperty::__getattr__ | ( | self, | ||
name | ||||
) |
The method which returns the value for the given property - In the case of the valid instance it returns the valid property value through IProperty interface - In the case of placeholder the property value is retrieevd from JobOptionsCatalogue
Definition at line 200 of file Bindings.py.
00200 : 00201 """ 00202 The method which returns the value for the given property 00203 - In the case of the valid instance it returns the valid property value through IProperty interface 00204 - In the case of placeholder the property value is retrieevd from JobOptionsCatalogue 00205 """ 00206 ip = self.getInterface() 00207 if ip : 00208 if not gbl.Gaudi.Utils.hasProperty ( ip , name ) : 00209 raise AttributeError, 'property %s does not exist' % name 00210 prop = ip.getProperty(name) 00211 if StringProperty == type( prop ) : return prop.value() 00212 elif StringPropertyRef == type( prop ) : return prop.value() 00213 try: return eval( prop.toString(), {}, {} ) 00214 except : return p.value() 00215 else : 00216 props = self._optsvc.getProperties(self._name) 00217 for p in props : 00218 if not p.name() == name : continue 00219 # from JobOptionsSvc we always have only strings 00220 try: return eval( p.value(), {}, {} ) 00221 except: return p.value() 00222 raise AttributeError, 'property %s does not exist' % name def properties(self):
def GaudiPython::Bindings::iProperty::properties | ( | self | ) |
Definition at line 223 of file Bindings.py.
00223 : 00224 dct = {} 00225 props = None 00226 ip = self.getInterface() 00227 if ip : 00228 props = ip.getProperties() 00229 propsFrom = self._name # "interface" 00230 else: 00231 props = self._optsvc.getProperties( self._name ) 00232 propsFrom = "jobOptionsSvc" 00233 if props: 00234 for p in props : 00235 try: 00236 dct[p.name()] = PropertyEntry(p) 00237 except (ValueError,TypeError),e: 00238 raise ValueError, "gaudimodule.iProperty.properties(): %s%s processing property %s.%s = %s" % \ 00239 (e.__class__.__name__, e.args, propsFrom, p.name(), p.value()) 00240 return dct def name(self) :
def GaudiPython::Bindings::iProperty::name | ( | self | ) |
Reimplemented in GaudiPython::Bindings::iAlgTool.
Definition at line 241 of file Bindings.py.
00241 : 00242 return self._name 00243 00244 #----iService class--------------------------------------------------------------------- class iService(iProperty) :