diff options
-rw-r--r-- | numpy/lib/tests/test_type_check.py | 9 | ||||
-rw-r--r-- | numpy/lib/type_check.py | 8 |
2 files changed, 12 insertions, 5 deletions
diff --git a/numpy/lib/tests/test_type_check.py b/numpy/lib/tests/test_type_check.py index 93a4da97a..4523e3f24 100644 --- a/numpy/lib/tests/test_type_check.py +++ b/numpy/lib/tests/test_type_check.py @@ -183,6 +183,15 @@ class TestIscomplexobj(TestCase): dummy = DummyPd() assert_(iscomplexobj(dummy)) + def test_custom_dtype_duck(self): + class MyArray(list): + @property + def dtype(self): + return complex + + a = MyArray([1+0j, 2+0j, 3+0j]) + assert_(iscomplexobj(a)) + class TestIsrealobj(TestCase): def test_basic(self): diff --git a/numpy/lib/type_check.py b/numpy/lib/type_check.py index 1658f160c..3bbee0258 100644 --- a/numpy/lib/type_check.py +++ b/numpy/lib/type_check.py @@ -268,12 +268,10 @@ def iscomplexobj(x): """ try: dtype = x.dtype + type_ = dtype.type except AttributeError: - dtype = asarray(x).dtype - try: - return issubclass(dtype.type, _nx.complexfloating) - except AttributeError: - return False + type_ = asarray(x).dtype.type + return issubclass(type_, _nx.complexfloating) def isrealobj(x): |