[pypy-commit] pypy numpypy-axisops: fixes for translation
mattip
noreply at buildbot.pypy.org
Fri Dec 30 13:51:46 CET 2011
Author: mattip
Branch: numpypy-axisops
Changeset: r50951:d13df48602d0
Date: 2011-12-29 23:17 +0200
http://bitbucket.org/pypy/pypy/changeset/d13df48602d0/
Log: fixes for translation
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
@@ -283,8 +283,8 @@
descr_rmod = _binop_right_impl("mod")
def _reduce_ufunc_impl(ufunc_name, promote_to_largest = False):
- def impl(self, space, w_dim=None):
- if w_dim is None:
+ def impl(self, space, w_dim=-1):
+ if isinstance(w_dim,int):
w_dim = space.wrap(w_dim)
return getattr(interp_ufuncs.get(space), ufunc_name).reduce(space,
self, True, promote_to_largest, w_dim)
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
@@ -108,11 +108,7 @@
if self.argcount != 2:
raise OperationError(space.w_ValueError, space.wrap("reduce only "
"supported for binary functions"))
- dim = -1
- if not space.is_w(w_dim, space.w_None):
- dim = space.int_w(w_dim)
- if not multidim and space.is_w(w_dim, space.w_None):
- dim = 0
+ dim = space.int_w(w_dim)
assert isinstance(self, W_Ufunc2)
obj = convert_to_array(space, w_obj)
if isinstance(obj, Scalar):
@@ -132,7 +128,8 @@
"%s.reduce without identity", self.name)
if shapelen>1 and dim>=0:
from pypy.module.micronumpy.interp_numarray import Reduce
- return Reduce(self.func, self.name, dim, dtype, obj, self.identity)
+ return space.wrap(Reduce(self.func, self.name, dim, dtype,
+ obj, self.identity))
sig = find_sig(ReduceSignature(self.func, self.name, dtype,
ScalarSignature(dtype),
obj.create_sig(obj.shape)), obj)
More information about the pypy-commit
mailing list