[pypy-commit] pypy default: fix view of record array scalar
bdkearns
noreply at buildbot.pypy.org
Fri Dec 20 21:23:24 CET 2013
Author: Brian Kearns <bdkearns at gmail.com>
Branch:
Changeset: r68516:1bb4e20a626f
Date: 2013-12-20 15:19 -0500
http://bitbucket.org/pypy/pypy/changeset/1bb4e20a626f/
Log: fix view of record array scalar
diff --git a/pypy/module/micronumpy/arrayimpl/scalar.py b/pypy/module/micronumpy/arrayimpl/scalar.py
--- a/pypy/module/micronumpy/arrayimpl/scalar.py
+++ b/pypy/module/micronumpy/arrayimpl/scalar.py
@@ -131,7 +131,10 @@
if space.isinstance_w(w_idx, space.w_tuple):
if space.len_w(w_idx) == 0:
return self.get_scalar_value()
- if space.is_none(w_idx):
+ elif space.isinstance_w(w_idx, space.w_str):
+ if self.dtype.is_record_type():
+ return self.value.descr_getitem(space, w_idx).descr_ravel(space)
+ elif space.is_none(w_idx):
new_shape = [1]
arr = W_NDimArray.from_shape(space, new_shape, self.dtype)
arr_iter = arr.create_iter(new_shape)
diff --git a/pypy/module/micronumpy/test/test_numarray.py b/pypy/module/micronumpy/test/test_numarray.py
--- a/pypy/module/micronumpy/test/test_numarray.py
+++ b/pypy/module/micronumpy/test/test_numarray.py
@@ -3069,7 +3069,12 @@
assert a[1]['y'] == 2
def test_views(self):
- from numpypy import array
+ from numpypy import array, zeros, ndarray
+ a = zeros((), dtype=[('x', int), ('y', float)])
+ raises(IndexError, 'a[0]')
+ assert type(a['x']) is ndarray
+ assert a['x'] == 0
+ assert a['y'] == 0
a = array([(1, 2), (3, 4)], dtype=[('x', int), ('y', float)])
raises((IndexError, ValueError), 'array([1])["x"]')
raises((IndexError, ValueError), 'a["z"]')
More information about the pypy-commit
mailing list