From e285208a309b44ccc88e28c60140474acb7cc83b Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Wed, 30 Apr 2008 22:06:41 +0000 Subject: For x.view, change dtype into keyword argument. --- numpy/core/src/arraymethods.c | 8 +++++--- numpy/core/tests/test_multiarray.py | 10 ++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'numpy/core') 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 * -- cgit v1.2.1