Author: Brian Kearns <bdkea...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit