[pypy-commit] pypy numpy-back-to-applevel: start implementing iter
fijal
noreply at buildbot.pypy.org
Thu Jan 26 18:13:50 CET 2012
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: numpy-back-to-applevel
Changeset: r51803:9698baa9d6b5
Date: 2012-01-26 19:13 +0200
http://bitbucket.org/pypy/pypy/changeset/9698baa9d6b5/
Log: start implementing iter
diff --git a/lib_pypy/numpypy/core/numeric.py b/lib_pypy/numpypy/core/numeric.py
--- a/lib_pypy/numpypy/core/numeric.py
+++ b/lib_pypy/numpypy/core/numeric.py
@@ -1,5 +1,6 @@
from _numpypy import array, ndarray, int_, float_ #, complex_# , longlong
+from _numpypy import concatenate
import sys
import _numpypy as multiarray # ARGH
from numpypy.core.arrayprint import array2string
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
@@ -645,6 +645,13 @@
res_i = res_i.next(shapelen)
return res
+ def descr_item(self, space, w_arg=None):
+ if space.is_w(w_arg, space.w_None):
+ if not isinstance(self, Scalar):
+ raise OperationError(space.w_ValueError, space.wrap("index out of bounds"))
+ return self.value.wrap(space)
+ xxx
+
def convert_to_array(space, w_obj):
if isinstance(w_obj, BaseArray):
return w_obj
@@ -1357,6 +1364,7 @@
BaseArray.descr_set_shape),
size = GetSetProperty(BaseArray.descr_get_size),
ndim = GetSetProperty(BaseArray.descr_get_ndim),
+ item = interp2app(BaseArray.descr_item),
T = GetSetProperty(BaseArray.descr_get_transpose),
flat = GetSetProperty(BaseArray.descr_get_flatiter),
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
@@ -1455,6 +1455,15 @@
assert (a.compress([True, False, True]) == [0, 2]).all()
raises(IndexError, "a.compress([1] * 100)")
+ def test_item(self):
+ from _numpypy import array
+ assert array(3).item() == 3
+ assert type(array(3).item()) is int
+ assert type(array(True).item()) is bool
+ assert type(array(3.5).item()) is float
+ raises((ValueError, IndexError), "array(3).item(15)")
+ raises(ValueError, "array([1, 2, 3]).item()")
+ xxx
class AppTestSupport(BaseNumpyAppTest):
def setup_class(cls):
More information about the pypy-commit
mailing list