[Erp5-report] r8924 - /erp5/trunk/products/ERP5Type/patches/PropertyManager.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Jul 31 13:19:50 CEST 2006
Author: jerome
Date: Mon Jul 31 13:19:49 2006
New Revision: 8924
URL: http://svn.erp5.org?rev=8924&view=rev
Log:
use isinstance to check types, do not override type builtin.
Modified:
erp5/trunk/products/ERP5Type/patches/PropertyManager.py
Modified: erp5/trunk/products/ERP5Type/patches/PropertyManager.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/patches/PropertyManager.py?rev=8924&r1=8923&r2=8924&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/patches/PropertyManager.py (original)
+++ erp5/trunk/products/ERP5Type/patches/PropertyManager.py Mon Jul 31 13:19:49 2006
@@ -40,12 +40,11 @@
self._wrapperCheck(value)
if not hasattr(self, 'isRADContent'):
if not self.hasProperty(id):
- raise 'Bad Request', 'The property %s does not exist' % escape(id)
- if type(value)==type(''):
+ raise BadRequest, 'The property %s does not exist' % escape(id)
+ if isinstance(value, str):
proptype=self.getPropertyType(id) or 'string'
if type_converters.has_key(proptype):
value=type_converters[proptype](value)
- #LOG('_updateProperty', 0, 'self = %r, id = %r, value = %r' % (self, id, value))
self._setPropValue(id, value)
def PropertyManager_hasProperty(self, id):
@@ -58,13 +57,13 @@
def PropertyManager_getProperty(self, id, d=None, evaluate=1):
"""Get the property 'id', returning the optional second
argument or None if no such property is found."""
- type = self.getPropertyType(id)
- if evaluate and type == 'tales':
+ property_type = self.getPropertyType(id)
+ if evaluate and property_type == 'tales':
value = getattr(self, id)
expression = Expression(value)
econtext = createExpressionContext(self)
return expression(econtext)
- elif type:
+ elif property_type:
return getattr(self, id)
return d
@@ -83,16 +82,15 @@
if type is None:
# Generate a default type
- value_type = type(value)
- if value_type in (type([]), type(())):
+ if isinstance(value, (list, tuple)):
type = 'lines'
- elif value_type is type(1):
+ elif isinstance(value, int):
type = 'int'
- elif value_type is type(1L):
+ elif isinstance(value, long):
type = 'long'
- elif value_type is type(1.0):
+ elif isinstance(value, float):
type = 'float'
- elif value_type is type('a'):
+ elif isinstance(value, basestring):
if len(value_type.split('\n')) > 1:
type = 'text'
else:
@@ -114,7 +112,8 @@
else:
self._setPropValue(id, [])
else:
- self._local_properties=getattr(self, '_local_properties', ())+({'id':id,'type':type},)
+ self._local_properties = getattr(self,
+ '_local_properties', ()) + ({'id':id, 'type':type},)
self._setPropValue(id, value)
def PropertyManager_delProperty(self, id):
More information about the Erp5-report
mailing list