diff options
Diffstat (limited to 'numpy/core')
-rw-r--r-- | numpy/core/src/multiarray/dtype_transfer.c | 7 | ||||
-rw-r--r-- | numpy/core/tests/test_dtype.py | 7 | ||||
-rw-r--r-- | numpy/core/tests/test_ufunc.py | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/dtype_transfer.c b/numpy/core/src/multiarray/dtype_transfer.c index 7a7379ad5..f11ea395f 100644 --- a/numpy/core/src/multiarray/dtype_transfer.c +++ b/numpy/core/src/multiarray/dtype_transfer.c @@ -1362,6 +1362,13 @@ get_nbo_cast_transfer_function(int aligned, break; } + if (PyDataType_FLAGCHK(src_dtype, NPY_NEEDS_PYAPI) || + PyDataType_FLAGCHK(dst_dtype, NPY_NEEDS_PYAPI)) { + if (out_needs_api) { + *out_needs_api = 1; + } + } + /* Get the cast function */ castfunc = PyArray_GetCastFunc(src_dtype, dst_dtype->type_num); if (!castfunc) { diff --git a/numpy/core/tests/test_dtype.py b/numpy/core/tests/test_dtype.py index 2621c8696..3a255b038 100644 --- a/numpy/core/tests/test_dtype.py +++ b/numpy/core/tests/test_dtype.py @@ -3,6 +3,7 @@ from __future__ import division, absolute_import, print_function import sys import numpy as np from numpy.testing import * +from numpy.core.test_rational import rational def assert_dtype_equal(a, b): assert_equal(a, b) @@ -533,5 +534,11 @@ class TestDtypeAttributes(TestCase): assert_equal(np.dtype(user_def_subcls).name, 'user_def_subcls') +def test_rational_dtype(): + # test for bug gh-5719 + a = np.array([1111], dtype=rational).astype + assert_raises(OverflowError, a, 'int8') + + if __name__ == "__main__": run_module_suite() diff --git a/numpy/core/tests/test_ufunc.py b/numpy/core/tests/test_ufunc.py index b3c281e2a..699a1b2ea 100644 --- a/numpy/core/tests/test_ufunc.py +++ b/numpy/core/tests/test_ufunc.py @@ -7,7 +7,7 @@ from numpy.testing import * import numpy.core.umath_tests as umt import numpy.core.operand_flag_tests as opflag_tests from numpy.compat import asbytes -from numpy.core.test_rational import * +from numpy.core.test_rational import rational, test_add, test_add_rationals class TestUfuncKwargs(TestCase): |