Author: mattip <matti.pi...@gmail.com> Branch: Changeset: r77792:1137f0723a07 Date: 2015-06-02 22:15 +0300 http://bitbucket.org/pypy/pypy/changeset/1137f0723a07/
Log: add context argument to __array_wrap__ in ufuncs diff --git a/pypy/module/micronumpy/test/test_subtype.py b/pypy/module/micronumpy/test/test_subtype.py --- a/pypy/module/micronumpy/test/test_subtype.py +++ b/pypy/module/micronumpy/test/test_subtype.py @@ -656,6 +656,7 @@ self.output += 'In __array_wrap__:' self.output += ' self is %s' % repr(self) self.output += ' arr is %r\n' % (out_arr,) + self.output += ' context is %r\n' % (context,) # then just call the parent ret = np.ndarray.__array_wrap__(self, out_arr, context) print 'wrap',self.output 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 @@ -474,7 +474,8 @@ if out is None: if w_res.is_scalar(): return w_res.get_scalar_value() - w_res = space.call_method(w_obj, '__array_wrap__', w_res) + ctxt = space.newtuple([self, space.newtuple([w_obj]), space.wrap(0)]) + w_res = space.call_method(w_obj, '__array_wrap__', w_res, ctxt) return w_res def call_scalar(self, space, w_arg, in_dtype): @@ -632,7 +633,8 @@ if out is None: if w_res.is_scalar(): return w_res.get_scalar_value() - w_res = space.call_method(w_highpriority, '__array_wrap__', w_res) + ctxt = space.newtuple([self, space.newtuple([w_lhs, w_rhs]), space.wrap(0)]) + w_res = space.call_method(w_highpriority, '__array_wrap__', w_res, ctxt) return w_res def call_scalar(self, space, w_lhs, w_rhs, in_dtype): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit