summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/numeric.py5
-rw-r--r--numpy/core/tests/test_records.py3
-rw-r--r--numpy/lib/function_base.py3
-rw-r--r--numpy/matrixlib/tests/test_defmatrix.py3
-rw-r--r--numpy/testing/decorators.py7
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