[pypy-commit] pypy default: add context argument to __array_wrap__ in ufuncs

mattip noreply at buildbot.pypy.org
Tue Jun 2 22:48:28 CEST 2015


Author: mattip <matti.picus at 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):


More information about the pypy-commit mailing list