summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarten van Kerkwijk <mhvk@astro.utoronto.ca>2018-01-18 08:30:03 -0500
committerGitHub <noreply@github.com>2018-01-18 08:30:03 -0500
commit1062cb2332152fe421297454559981825d4c7907 (patch)
treefa405326cb94fbc1fad69e84730de500d76a7f59
parentf4092e81f45640b6ac13f3e106ee0cb996e3b4f2 (diff)
parent47c4f32b9a51f549041cd71ddaad3055c7752d5e (diff)
downloadnumpy-1062cb2332152fe421297454559981825d4c7907.tar.gz
Merge pull request #10430 from eric-wieser/duplicate-field-name-error
MAINT: Use ValueError for duplicate field names in lookup
-rw-r--r--numpy/core/src/multiarray/mapping.c2
-rw-r--r--numpy/core/tests/test_multiarray.py4
2 files changed, 4 insertions, 2 deletions
diff --git a/numpy/core/src/multiarray/mapping.c b/numpy/core/src/multiarray/mapping.c
index 96667a336..eca4e98be 100644
--- a/numpy/core/src/multiarray/mapping.c
+++ b/numpy/core/src/multiarray/mapping.c
@@ -1513,7 +1513,7 @@ _get_field_view(PyArrayObject *arr, PyObject *ind, PyArrayObject **view)
PyObject *errmsg = PyUString_FromString(
"duplicate field of name ");
PyUString_ConcatAndDel(&errmsg, name);
- PyErr_SetObject(PyExc_KeyError, errmsg);
+ PyErr_SetObject(PyExc_ValueError, errmsg);
Py_DECREF(errmsg);
Py_DECREF(fields);
Py_DECREF(names);
diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py
index e90d2180a..b768f7a65 100644
--- a/numpy/core/tests/test_multiarray.py
+++ b/numpy/core/tests/test_multiarray.py
@@ -1157,9 +1157,11 @@ class TestStructured(object):
def test_multiindex_titles(self):
a = np.zeros(4, dtype=[(('a', 'b'), 'i'), ('c', 'i'), ('d', 'i')])
assert_raises(KeyError, lambda : a[['a','c']])
- assert_raises(KeyError, lambda : a[['b','b']])
+ assert_raises(KeyError, lambda : a[['a','a']])
+ assert_raises(ValueError, lambda : a[['b','b']]) # field exists, but repeated
a[['b','c']] # no exception
+
class TestBool(object):
def test_test_interning(self):
a0 = np.bool_(0)