Author: Ronan Lamy <ronan.l...@gmail.com> Branch: object-dtype2 Changeset: r76807:711516940e44 Date: 2015-04-17 00:57 +0100 http://bitbucket.org/pypy/pypy/changeset/711516940e44/
Log: fix translation (for real) diff --git a/pypy/module/micronumpy/ndarray.py b/pypy/module/micronumpy/ndarray.py --- a/pypy/module/micronumpy/ndarray.py +++ b/pypy/module/micronumpy/ndarray.py @@ -890,10 +890,7 @@ "The truth value of an array with more than one element " "is ambiguous. Use a.any() or a.all()")) iter, state = self.create_iter() - w_val = iter.getitem(state) - if self.get_dtype().is_object(): - w_val = self.get_dtype().itemtype.unbox(w_val) - return space.wrap(space.is_true(w_val)) + return space.wrap(space.is_true(iter.getitem(state))) def _binop_impl(ufunc_name): def impl(self, space, w_other, w_out=None): diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py --- a/pypy/module/micronumpy/types.py +++ b/pypy/module/micronumpy/types.py @@ -1718,6 +1718,10 @@ def str_format(self, box): return self.space.str_w(self.space.repr(self.unbox(box))) + def runpack_str(self, space, s): + raise oefmt(space.w_NotImplementedError, + "fromstring not implemented for object type") + def to_builtin_type(self, space, box): assert isinstance(box, self.BoxType) return box.w_obj @@ -1753,14 +1757,14 @@ @raw_binary_op def logical_and(self, v1, v2): if self._obool(v1): - return v2 - return v1 + return self.space.bool_w(v2) + return self.space.bool_w(v1) @raw_binary_op def logical_or(self, v1, v2): if self._obool(v1): - return v1 - return v2 + return self.space.bool_w(v1) + return self.space.bool_w(v2) @raw_unary_op def logical_not(self, v): @@ -1818,23 +1822,23 @@ @raw_binary_op def le(self, v1, v2): - return self.space.le(v1, v2) + return self.space.bool_w(self.space.le(v1, v2)) @raw_binary_op def ge(self, v1, v2): - return self.space.ge(v1, v2) + return self.space.bool_w(self.space.ge(v1, v2)) @raw_binary_op def lt(self, v1, v2): - return self.space.lt(v1, v2) + return self.space.bool_w(self.space.lt(v1, v2)) @raw_binary_op def gt(self, v1, v2): - return self.space.gt(v1, v2) + return self.space.bool_w(self.space.gt(v1, v2)) @raw_binary_op def ne(self, v1, v2): - return self.space.ne(v1, v2) + return self.space.bool_w(self.space.ne(v1, v2)) def add_attributeerr_op(cls, op): def func(self, *args): diff --git a/pypy/module/micronumpy/ufuncs.py b/pypy/module/micronumpy/ufuncs.py --- a/pypy/module/micronumpy/ufuncs.py +++ b/pypy/module/micronumpy/ufuncs.py @@ -1128,17 +1128,12 @@ def impl(res_dtype, value): res = get_op(res_dtype)(value) if bool_result: - if res_dtype.is_object() and isinstance(res, W_Root): - space = res_dtype.itemtype.space - res = space.bool_w(res) return dtype_cache.w_booldtype.box(res) return res elif nin == 2: def impl(res_dtype, lvalue, rvalue): res = get_op(res_dtype)(lvalue, rvalue) if comparison_func: - if res_dtype.is_object(): - return res return dtype_cache.w_booldtype.box(res) return res return func_with_new_name(impl, ufunc_name) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit