Author: mattip <[email protected]>
Branch: 
Changeset: r77840:4973a0f32579
Date: 2015-06-03 20:15 +0300
http://bitbucket.org/pypy/pypy/changeset/4973a0f32579/

Log:    special case buffer -> uint8 dtype

diff --git a/pypy/module/micronumpy/ctors.py b/pypy/module/micronumpy/ctors.py
--- a/pypy/module/micronumpy/ctors.py
+++ b/pypy/module/micronumpy/ctors.py
@@ -142,6 +142,8 @@
     else:
         # not an array
         shape, elems_w = strides.find_shape_and_elems(space, w_object, dtype)
+    if dtype is None and space.isinstance_w(w_object, space.w_buffer):
+        dtype = descriptor.get_dtype_cache(space).w_uint8dtype
     if dtype is None or (dtype.is_str_or_unicode() and dtype.elsize < 1):
         dtype = find_dtype_for_seq(space, elems_w, dtype)
         if dtype is None:
diff --git a/pypy/module/micronumpy/test/test_ndarray.py 
b/pypy/module/micronumpy/test/test_ndarray.py
--- a/pypy/module/micronumpy/test/test_ndarray.py
+++ b/pypy/module/micronumpy/test/test_ndarray.py
@@ -3984,8 +3984,9 @@
         import sys
         builtins = getattr(__builtins__, '__dict__', __builtins__)
         _buffer = builtins.get('buffer')
-        dat = np.array(_buffer('1.0'), dtype=np.float64)
-        assert (dat == [49.0, 46.0, 48.0]).all()
+        dat = np.array(_buffer('1.0'))
+        assert (dat == [49, 46, 48]).all()
+        assert dat.dtype == np.dtype('uint8')
 
 
 class AppTestPyPy(BaseNumpyAppTest):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to