[pypy-commit] pypy numpy-refactor: make few more tests pass

fijal noreply at buildbot.pypy.org
Wed Sep 5 13:31:33 CEST 2012


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: numpy-refactor
Changeset: r57146:aa67dc3bdf0a
Date: 2012-09-05 13:30 +0200
http://bitbucket.org/pypy/pypy/changeset/aa67dc3bdf0a/

Log:	make few more tests pass

diff --git a/pypy/module/micronumpy/arrayimpl/concrete.py b/pypy/module/micronumpy/arrayimpl/concrete.py
--- a/pypy/module/micronumpy/arrayimpl/concrete.py
+++ b/pypy/module/micronumpy/arrayimpl/concrete.py
@@ -116,6 +116,9 @@
         else:
             self._done = True
 
+    def done(self):
+        return self._done
+
 def int_w(space, w_obj):
     # a special version that respects both __index__ and __int__
     # XXX add __index__ support
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
@@ -163,8 +163,8 @@
         if self.get_size() > 1:
             raise OperationError(space.w_ValueError, space.wrap(
                 "The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()"))
-        iter = self.create_iter(self.shape)
-        return space.is_true(iter.getitem())
+        iter = self.create_iter(self.get_shape())
+        return space.wrap(space.is_true(iter.getitem()))
 
     def _binop_impl(ufunc_name):
         def impl(self, space, w_other, w_out=None):
diff --git a/pypy/module/micronumpy/interp_ufuncs.py b/pypy/module/micronumpy/interp_ufuncs.py
--- a/pypy/module/micronumpy/interp_ufuncs.py
+++ b/pypy/module/micronumpy/interp_ufuncs.py
@@ -126,12 +126,12 @@
         array([[ 1,  5],
                [ 9, 13]])
         """
-        from pypy.module.micronumpy.interp_numarray import BaseArray
+        from pypy.module.micronumpy.interp_numarray import W_NDimArray
         if w_axis is None:
             w_axis = space.wrap(0)
         if space.is_w(w_out, space.w_None):
             out = None
-        elif not isinstance(w_out, BaseArray):
+        elif not isinstance(w_out, W_NDimArray):
             raise OperationError(space.w_TypeError, space.wrap(
                                                 'output must be an array'))
         else:
diff --git a/pypy/module/micronumpy/loop.py b/pypy/module/micronumpy/loop.py
--- a/pypy/module/micronumpy/loop.py
+++ b/pypy/module/micronumpy/loop.py
@@ -84,15 +84,13 @@
     return out
 
 def do_axis_reduce(shape, func, arr, dtype, axis, out, identity):
-    import pdb
-    pdb.set_trace()
-    out_iter = out.create_iter(shape)
-    arr_iter = arr.create_axis_iter(shape, axis)
+    out_iter = out.create_axis_iter(arr.get_shape(), axis)
+    arr_iter = arr.create_iter(arr.get_shape())
     if identity is not None:
         identity = identity.convert_to(dtype)
     while not out_iter.done():
         w_val = arr_iter.getitem().convert_to(dtype)
-        if arr_iter.first_line:
+        if out_iter.first_line:
             if identity is not None:
                 w_val = func(dtype, identity, w_val)
         else:


More information about the pypy-commit mailing list