diff options
author | Travis Oliphant <oliphant@enthought.com> | 2006-10-13 19:56:17 +0000 |
---|---|---|
committer | Travis Oliphant <oliphant@enthought.com> | 2006-10-13 19:56:17 +0000 |
commit | 9416787ebb51f1fb847567dd6f2df48cd7ab4b97 (patch) | |
tree | 6866d494e95470f72f97b2664aa264b2f2ff9f4f /numpy/core/src | |
parent | 58541aa666e7363c3313bd886e1eafbe07d77cc6 (diff) | |
download | numpy-9416787ebb51f1fb847567dd6f2df48cd7ab4b97.tar.gz |
Fix ticket #344: normalize repr of dtypes with shapes. Also change align argument in dtype constructor to be a boolean.
Diffstat (limited to 'numpy/core/src')
-rw-r--r-- | numpy/core/src/arrayobject.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/numpy/core/src/arrayobject.c b/numpy/core/src/arrayobject.c index e03b47085..e0bf6bce4 100644 --- a/numpy/core/src/arrayobject.c +++ b/numpy/core/src/arrayobject.c @@ -10792,12 +10792,13 @@ arraydescr_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds) { PyObject *odescr; PyArray_Descr *descr, *conv; - int align=0; + Bool align=FALSE; Bool copy=FALSE; static char *kwlist[] = {"dtype", "align", "copy", NULL}; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|iO&", - kwlist, &odescr, &align, + if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O&O&", + kwlist, &odescr, + PyArray_BoolConverter, &align, PyArray_BoolConverter, ©)) return NULL; @@ -11160,6 +11161,7 @@ arraydescr_str(PyArray_Descr *self) else if (self->subarray) { PyObject *p; PyObject *t = PyString_FromString("("); + PyObject *sh; p = arraydescr_str(self->subarray->base); if (!self->subarray->base->names && !self->subarray->base->subarray) { PyObject *t=PyString_FromString("'"); @@ -11169,7 +11171,15 @@ arraydescr_str(PyArray_Descr *self) } PyString_ConcatAndDel(&t, p); PyString_ConcatAndDel(&t, PyString_FromString(",")); - PyString_ConcatAndDel(&t, PyObject_Str(self->subarray->shape)); + if (!PyTuple_Check(self->subarray->shape)) { + sh = Py_BuildValue("(O)", self->subarray->shape); + } + else { + sh = self->subarray->shape; + Py_INCREF(sh); + } + PyString_ConcatAndDel(&t, PyObject_Str(sh)); + Py_DECREF(sh); PyString_ConcatAndDel(&t, PyString_FromString(")")); sub = t; } |