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