[pypy-commit] pypy ufuncapi: frompyfunc needs object dtype
mattip
noreply at buildbot.pypy.org
Sun Jun 1 00:14:49 CEST 2014
Author: mattip <matti.picus at gmail.com>
Branch: ufuncapi
Changeset: r71792:011468df676c
Date: 2014-05-26 18:42 +0300
http://bitbucket.org/pypy/pypy/changeset/011468df676c/
Log: frompyfunc needs object dtype
diff --git a/pypy/module/micronumpy/__init__.py b/pypy/module/micronumpy/__init__.py
--- a/pypy/module/micronumpy/__init__.py
+++ b/pypy/module/micronumpy/__init__.py
@@ -31,7 +31,9 @@
class UMathModule(MixedModule):
appleveldefs = {}
- interpleveldefs = {'FLOATING_POINT_SUPPORT': 'space.wrap(1)'}
+ interpleveldefs = {
+ 'FLOATING_POINT_SUPPORT': 'space.wrap(1)',
+ }
# ufuncs
for exposed, impl in [
("absolute", "absolute"),
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
@@ -97,11 +97,26 @@
raises(TypeError, ufunc)
def test_frompyfunc(self):
- from numpy import ufunc, frompyfunc, arange
- myufunc = frompyfunc(int.__add__, 2, 1)
- assert isinstance(add, ufunc)
+ try:
+ from numpy import frompyfunc
+ except ImportError:
+ skip('frompyfunc not available')
+ from numpy import ufunc, frompyfunc, arange, dtype
+ def adder(a, b):
+ return a+b
+ myufunc = frompyfunc(adder, 2, 1)
+ assert isinstance(myufunc, ufunc)
res = myufunc(arange(10), arange(10))
+ assert res.dtype == dtype(object)
assert all(res == arange(10) + arange(10))
+ raises(TypeError, frompyfunc, 1, 2, 3)
+ int_func22 = frompyfunc(int, 2, 2)
+ raises (ValueError, int_func22, arange(10))
+ int_func12 = frompyfunc(int, 1, 2)
+ res = int_func12(arange(10))
+ assert len(res) == 2
+ assert isinstance(res, tuple)
+ assert (res[0] == arange(10)).all()
def test_ufunc_attrs(self):
from numpy import add, multiply, sin
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
@@ -780,3 +780,5 @@
def get(space):
return space.fromcache(UfuncState)
+
+
More information about the pypy-commit
mailing list