Reviewers: ,


Please review this at http://codereview.tryton.org/306003/

Affected files:
  M proteus/__init__.py


Index: proteus/__init__.py
===================================================================

--- a/proteus/__init__.py
+++ b/proteus/__init__.py
@@ -18,6 +18,7 @@
 import threading
 import datetime
 from decimal import Decimal
+from types import NoneType
 import proteus.config
 from proteus.pyson import PYSONDecoder

@@ -110,25 +111,25 @@


 class IntegerDescriptor(FieldDescriptor):
-    default = 0

     def __set__(self, instance, value):
-        assert isinstance(value, (int, long))
+        assert isinstance(value, (int, long, NoneType))
         super(IntegerDescriptor, self).__set__(instance, value)


 class FloatDescriptor(FieldDescriptor):
-    default = 0.0

     def __set__(self, instance, value):
-        super(FloatDescriptor, self).__set__(instance, float(value))
+        assert isinstance(value, (int, long, float, Decimal, NoneType))
+        if value is not None:
+            value = float(value)
+        super(FloatDescriptor, self).__set__(instance, value)


 class NumericDescriptor(FieldDescriptor):
-    default = Decimal('0.0')

     def __set__(self, instance, value):
-        assert isinstance(value, Decimal)
+        assert isinstance(value, (NoneType, Decimal))
         # TODO add digits validation
         super(NumericDescriptor, self).__set__(instance, value)




--
[email protected] mailing list

Reply via email to