Author: Brian Kearns <[email protected]>
Branch:
Changeset: r68132:b6ff9f5a0ee0
Date: 2013-11-15 01:39 -0500
http://bitbucket.org/pypy/pypy/changeset/b6ff9f5a0ee0/
Log: fix an array scalar indexing case
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
@@ -123,6 +123,9 @@
)
def descr_getitem(self, space, _, w_idx):
+ if space.isinstance_w(w_idx, space.w_tuple):
+ if space.len_w(w_idx) == 0:
+ return self.get_scalar_value()
raise OperationError(space.w_IndexError,
space.wrap("scalars cannot be indexed"))
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
@@ -661,13 +661,16 @@
assert (b[newaxis] == [[2, 3, 4]]).all()
def test_scalar(self):
- from numpypy import array, dtype
+ from numpypy import array, dtype, int64
a = array(3)
raises(IndexError, "a[0]")
raises(IndexError, "a[0] = 5")
assert a.size == 1
assert a.shape == ()
assert a.dtype is dtype(int)
+ b = a[()]
+ assert type(b) is int64
+ assert b == 3
def test_len(self):
from numpypy import array
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit