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