diff options
Diffstat (limited to 'numpy/core')
-rw-r--r-- | numpy/core/src/multiarray/scalartypes.c.src | 17 | ||||
-rw-r--r-- | numpy/core/tests/test_multiarray.py | 5 |
2 files changed, 22 insertions, 0 deletions
diff --git a/numpy/core/src/multiarray/scalartypes.c.src b/numpy/core/src/multiarray/scalartypes.c.src index 19f2a6b03..87b3cde7a 100644 --- a/numpy/core/src/multiarray/scalartypes.c.src +++ b/numpy/core/src/multiarray/scalartypes.c.src @@ -1303,6 +1303,18 @@ gentype_base_get(PyObject *NPY_UNUSED(self)) Py_RETURN_NONE; } +static PyObject * +voidtype_base_get(PyVoidScalarObject *self) +{ + if (self->base == NULL) { + Py_RETURN_NONE; + } + else { + Py_INCREF(self->base); + return self->base; + } +} + static PyArray_Descr * _realdescr_fromcomplexscalar(PyObject *self, int *typenum) @@ -2099,6 +2111,11 @@ static PyGetSetDef voidtype_getsets[] = { (setter)0, "dtype object", NULL}, + {"base", + (getter)voidtype_base_get, + (setter)0, + "base object", + NULL}, {NULL, NULL, NULL, NULL, NULL} }; diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py index cdfe87579..7e3ffe28a 100644 --- a/numpy/core/tests/test_multiarray.py +++ b/numpy/core/tests/test_multiarray.py @@ -994,6 +994,11 @@ class TestStructured(TestCase): assert_equal(yy.itemsize, 0) assert_equal(xx, yy) + def test_base_attr(self): + a = np.zeros(3, dtype='i4,f4') + b = a[0] + assert_(b.base is a) + class TestBool(TestCase): def test_test_interning(self): |