summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/src/multiarray/dtype_transfer.c7
-rw-r--r--numpy/core/tests/test_dtype.py7
-rw-r--r--numpy/core/tests/test_ufunc.py2
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):