diff options
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/core/numeric.py | 5 | ||||
-rw-r--r-- | numpy/core/tests/test_records.py | 3 | ||||
-rw-r--r-- | numpy/lib/function_base.py | 3 | ||||
-rw-r--r-- | numpy/matrixlib/tests/test_defmatrix.py | 3 | ||||
-rw-r--r-- | numpy/testing/decorators.py | 7 |
5 files changed, 13 insertions, 8 deletions
diff --git a/numpy/core/numeric.py b/numpy/core/numeric.py index 4c5651c3a..f2381a7a6 100644 --- a/numpy/core/numeric.py +++ b/numpy/core/numeric.py @@ -29,6 +29,7 @@ import umath from umath import * import numerictypes from numerictypes import * +import collections if sys.version_info[0] < 3: @@ -2445,8 +2446,8 @@ def seterrcall(func): {'over': 'log', 'divide': 'log', 'invalid': 'log', 'under': 'log'} """ - if func is not None and not callable(func): - if not hasattr(func, 'write') or not callable(func.write): + if func is not None and not isinstance(func, collections.Callable): + if not hasattr(func, 'write') or not isinstance(func.write, collections.Callable): raise ValueError("Only callable can be used as callback") pyvals = umath.geterrobj() old = geterrcall() diff --git a/numpy/core/tests/test_records.py b/numpy/core/tests/test_records.py index 87c661938..2a6403479 100644 --- a/numpy/core/tests/test_records.py +++ b/numpy/core/tests/test_records.py @@ -4,6 +4,7 @@ from numpy.testing import * from numpy.compat import asbytes, asunicode import warnings +import collections class TestFromrecords(TestCase): @@ -94,7 +95,7 @@ class TestFromrecords(TestCase): assert_array_equal(ra['shape'], [['A', 'B', 'C']]) ra.field = 5 assert_array_equal(ra['field'], [[5, 5, 5]]) - assert_(callable(ra.field)) + assert_(isinstance(ra.field, collections.Callable)) def test_fromrecords_with_explicit_dtype(self): a = np.rec.fromrecords([(1, 'a'), (2, 'bbb')], diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index 48fc0d898..6acd9a36b 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -30,6 +30,7 @@ from arraysetops import setdiff1d from utils import deprecate from _compiled_base import add_newdoc_ufunc import numpy as np +import collections def iterable(y): @@ -707,7 +708,7 @@ def piecewise(x, condlist, funclist, *args, **kw): y = zeros(x.shape, x.dtype) for k in range(n): item = funclist[k] - if not callable(item): + if not isinstance(item, collections.Callable): y[condlist[k]] = item else: vals = x[condlist[k]] diff --git a/numpy/matrixlib/tests/test_defmatrix.py b/numpy/matrixlib/tests/test_defmatrix.py index 0a181fca3..dd0b9ee08 100644 --- a/numpy/matrixlib/tests/test_defmatrix.py +++ b/numpy/matrixlib/tests/test_defmatrix.py @@ -4,6 +4,7 @@ from numpy import matrix, asmatrix, bmat from numpy.matrixlib.defmatrix import matrix_power from numpy.matrixlib import mat import numpy as np +import collections class TestCtor(TestCase): def test_basic(self): @@ -285,7 +286,7 @@ class TestMatrixReturn(TestCase): if attrib.startswith('_') or attrib in excluded_methods: continue f = getattr(a, attrib) - if callable(f): + if isinstance(f, collections.Callable): # reset contents of a a.astype('f8') a.fill(1.0) diff --git a/numpy/testing/decorators.py b/numpy/testing/decorators.py index 053b99211..ed7b1032b 100644 --- a/numpy/testing/decorators.py +++ b/numpy/testing/decorators.py @@ -18,6 +18,7 @@ import sys from numpy.testing.utils import \ WarningManager, WarningMessage +import collections def slow(t): """ @@ -122,7 +123,7 @@ def skipif(skip_condition, msg=None): import nose # Allow for both boolean or callable skip conditions. - if callable(skip_condition): + if isinstance(skip_condition, collections.Callable): skip_val = lambda : skip_condition() else: skip_val = lambda : skip_condition @@ -198,7 +199,7 @@ def knownfailureif(fail_condition, msg=None): msg = 'Test skipped due to known failure' # Allow for both boolean or callable known failure conditions. - if callable(fail_condition): + if isinstance(fail_condition, collections.Callable): fail_val = lambda : fail_condition() else: fail_val = lambda : fail_condition @@ -264,7 +265,7 @@ def deprecated(conditional=True): finally: ctx.__exit__() - if callable(conditional): + if isinstance(conditional, collections.Callable): cond = conditional() else: cond = conditional |