summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/src/arraymethods.c8
-rw-r--r--numpy/core/tests/test_multiarray.py10
2 files changed, 15 insertions, 3 deletions
diff --git a/numpy/core/src/arraymethods.c b/numpy/core/src/arraymethods.c
index 587bffedc..cfd912644 100644
--- a/numpy/core/src/arraymethods.c
+++ b/numpy/core/src/arraymethods.c
@@ -101,12 +101,14 @@ array_squeeze(PyArrayObject *self, PyObject *args)
}
static PyObject *
-array_view(PyArrayObject *self, PyObject *args)
+array_view(PyArrayObject *self, PyObject *args, PyObject *kwds)
{
PyObject *otype=NULL;
PyArray_Descr *type=NULL;
- if (!PyArg_ParseTuple(args, "|O", &otype)) return NULL;
+ static char *kwlist[] = {"dtype", NULL};
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O", kwlist, &otype))
+ return NULL;
if (otype) {
if (PyType_Check(otype) && \
@@ -1994,7 +1996,7 @@ static PyMethodDef array_methods[] = {
{"var", (PyCFunction)array_variance,
METH_VARARGS | METH_KEYWORDS, NULL},
{"view", (PyCFunction)array_view,
- METH_VARARGS, NULL},
+ METH_VARARGS | METH_KEYWORDS, NULL},
{NULL, NULL} /* sentinel */
};
diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py
index ec1bf4369..9a7f8c9ff 100644
--- a/numpy/core/tests/test_multiarray.py
+++ b/numpy/core/tests/test_multiarray.py
@@ -833,6 +833,16 @@ class TestRecord(NumpyTestCase):
dt.names = ['p','q']
assert_equal(dt.names,['p','q'])
+class TestView(NumpyTestCase):
+ def test_basic(self):
+ x = np.array([(1,2,3,4),(5,6,7,8)],dtype=[('r',np.int8),('g',np.int8),
+ ('b',np.int8),('a',np.int8)])
+ y = x.view(dtype=np.int32)
+ z = x.view(np.int32)
+ assert_array_equal(y,z)
+ assert_array_equal(y, [67305985, 134678021])
+
+
# Import tests without matching module names
set_local_path()
from test_unicode import *