Author: Brian Kearns <[email protected]>
Branch:
Changeset: r69324:b7dd23fb75be
Date: 2014-02-23 20:28 -0500
http://bitbucket.org/pypy/pypy/changeset/b7dd23fb75be/
Log: handle ndarray getitem with ellipsis
diff --git a/pypy/module/micronumpy/compile.py
b/pypy/module/micronumpy/compile.py
--- a/pypy/module/micronumpy/compile.py
+++ b/pypy/module/micronumpy/compile.py
@@ -75,6 +75,7 @@
def __init__(self):
"""NOT_RPYTHON"""
self.fromcache = InternalSpaceCache(self).getorbuild
+ self.w_Ellipsis = special.Ellipsis(self)
self.w_NotImplemented = special.NotImplemented(self)
def _freeze_(self):
diff --git a/pypy/module/micronumpy/interp_numarray.py
b/pypy/module/micronumpy/interp_numarray.py
--- a/pypy/module/micronumpy/interp_numarray.py
+++ b/pypy/module/micronumpy/interp_numarray.py
@@ -218,7 +218,9 @@
prefix)
def descr_getitem(self, space, w_idx):
- if isinstance(w_idx, W_NDimArray) and w_idx.get_dtype().is_bool_type()
\
+ if space.is_w(w_idx, space.w_Ellipsis):
+ return self
+ elif isinstance(w_idx, W_NDimArray) and
w_idx.get_dtype().is_bool_type() \
and len(w_idx.get_shape()) > 0:
return self.getitem_filter(space, w_idx)
try:
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
@@ -2259,6 +2259,13 @@
a[b] = 1.
assert (a == [[1., 1., 1.]]).all()
+ def test_ellipsis_indexing(self):
+ import numpy as np
+ a = np.array(1.5)
+ assert a[...] is a
+ a = np.array([1, 2, 3])
+ assert a[...] is a
+
class AppTestNumArrayFromBuffer(BaseNumpyAppTest):
spaceconfig = dict(usemodules=["micronumpy", "array", "mmap"])
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit