Author: mattip <[email protected]>
Branch: ufuncapi
Changeset: r72143:8d88f29c0a86
Date: 2014-06-22 23:12 +0300
http://bitbucket.org/pypy/pypy/changeset/8d88f29c0a86/

Log:    coerce not convert_to, first test passes

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
@@ -103,7 +103,7 @@
         vals = [i_s[0].getitem(i_s[1]) for i_s in iters_and_states]
         arglist = space.wrap(vals)
         out_val = space.call_args(func, Arguments.frompacked(space, arglist))
-        out_iter.setitem(out_state, out_val.convert_to(space, res_dtype))
+        out_iter.setitem(out_state, res_dtype.coerce(space, out_val))
         for i in range(len(iters_and_states)):
             iters_and_states[i][1] = 
iters_and_states[i][0].next(iters_and_states[i][1])
         out_state = out_iter.next(out_state)
@@ -131,16 +131,16 @@
         # but func can return anything, 
         if not isinstance(out_vals,(list, tuple)):
             out_iter, out_state = out_iters_and_states[0]
-            out_iter.setitem(out_state, out_vals.convert_to(space, res_dtype))
+            out_iter.setitem(out_state, res_dtype.coerce(space, out_vals))
             out_iters_and_states[0][1] = 
out_iters_and_states[0][0].next(out_iters_and_states[0][1])
         else:    
             for i in range(len(out_iters_and_states)):
                 out_iter, out_state = out_iters_and_states[i]
                 out_iter.setitem(out_state, out_vals[i].convert_to(space, 
res_dtype))
                 out_iters_and_states[i][1] = 
out_iters_and_states[i][0].next(out_iters_and_states[i][1])
-        for i in range(len(iters_and_states)):
+        for i in range(len(in_iters_and_states)):
             in_iters_and_states[i][1] = 
in_iters_and_states[i][0].next(in_iters_and_states[i][1])
-    return out
+    return space.wrap(tuple(w_out))
 
 
 
diff --git a/pypy/module/micronumpy/test/test_ufuncs.py 
b/pypy/module/micronumpy/test/test_ufuncs.py
--- a/pypy/module/micronumpy/test/test_ufuncs.py
+++ b/pypy/module/micronumpy/test/test_ufuncs.py
@@ -211,11 +211,11 @@
             assert 'object' in str(e)
             # Use pypy specific extension for out_dtype
             adder_ufunc0 = frompyfunc(adder, 2, 1, dtypes=['match'])
-            adder_ufunc1 = frompyfunc([adder, adder], 2, 1, dtypes=[int, 
float])
+            adder_ufunc1 = frompyfunc([adder, adder], 2, 1, dtypes=['match'])
             int_func22 = frompyfunc([int, int], 2, 2, signature='()->()',
-                                    dtypes=[int, int, float, int])
+                                    dtypes=['match'])
             int_func12 = frompyfunc([int, int], 1, 2, signature='()->()',
-                                    dtypes=[int, int, float, int])
+                                    dtypes=['match'])
             retype = dtype(int)
         assert isinstance(adder_ufunc1, ufunc)
         res = adder_ufunc0(arange(10), arange(10))
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to