summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/src/multiarray/scalartypes.c.src17
-rw-r--r--numpy/core/tests/test_multiarray.py5
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):