Author: Antonio Cuni <[email protected]>
Branch: 
Changeset: r61092:0805e1ac97db
Date: 2013-02-11 14:52 +0100
http://bitbucket.org/pypy/pypy/changeset/0805e1ac97db/

Log:    fix issue1000: None is an acceptable value for numpypy floats and
        has to be converted to NaN

diff --git a/pypy/module/micronumpy/test/test_dtypes.py 
b/pypy/module/micronumpy/test/test_dtypes.py
--- a/pypy/module/micronumpy/test/test_dtypes.py
+++ b/pypy/module/micronumpy/test/test_dtypes.py
@@ -496,6 +496,13 @@
         assert numpy.float64('23.4') == numpy.float64(23.4)
         raises(ValueError, numpy.float64, '23.2df')
 
+    def test_float_None(self):
+        import _numpypy as numpy
+        from math import isnan
+        assert isnan(numpy.float32(None))
+        assert isnan(numpy.float64(None))
+        assert isnan(numpy.float128(None))
+
     def test_longfloat(self):
         import _numpypy as numpy
         # it can be float96 or float128
diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py
--- a/pypy/module/micronumpy/types.py
+++ b/pypy/module/micronumpy/types.py
@@ -648,6 +648,8 @@
     _mixin_ = True
 
     def _coerce(self, space, w_item):
+        if space.is_none(w_item):
+            return self.box(rfloat.NAN)
         return self.box(space.float_w(space.call_function(space.w_float, 
w_item)))
 
     def str_format(self, box):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to