[pypy-commit] pypy numpy-fixes: a.view() should respect the subtype of a
mattip
noreply at buildbot.pypy.org
Fri May 15 17:25:52 CEST 2015
Author: mattip <matti.picus at gmail.com>
Branch: numpy-fixes
Changeset: r77337:a2962cadf731
Date: 2015-05-15 18:08 +0300
http://bitbucket.org/pypy/pypy/changeset/a2962cadf731/
Log: a.view() should respect the subtype of a
diff --git a/pypy/module/micronumpy/ndarray.py b/pypy/module/micronumpy/ndarray.py
--- a/pypy/module/micronumpy/ndarray.py
+++ b/pypy/module/micronumpy/ndarray.py
@@ -883,6 +883,7 @@
if dtype.is_object() != impl.dtype.is_object():
raise oefmt(space.w_ValueError, 'expect trouble in ndarray.view,'
' one of target dtype or dtype is object dtype')
+ w_type = w_type or space.type(self)
v = impl.get_view(space, base, dtype, new_shape, strides, backstrides)
w_ret = wrap_impl(space, w_type, self, v)
return w_ret
diff --git a/pypy/module/micronumpy/test/test_subtype.py b/pypy/module/micronumpy/test/test_subtype.py
--- a/pypy/module/micronumpy/test/test_subtype.py
+++ b/pypy/module/micronumpy/test/test_subtype.py
@@ -82,6 +82,7 @@
assert isinstance(b, matrix)
assert b.__array_priority__ == 0.0
assert (b == a).all()
+ assert isinstance(b.view(), matrix)
a = array(5)[()]
for s in [matrix, ndarray]:
b = a.view(s)
More information about the pypy-commit
mailing list