diff options
author | Travis Oliphant <oliphant@enthought.com> | 2006-09-23 18:35:46 +0000 |
---|---|---|
committer | Travis Oliphant <oliphant@enthought.com> | 2006-09-23 18:35:46 +0000 |
commit | d0d5a9218ecb31041e9e20807ff2f4ccca0bbbfb (patch) | |
tree | c2560907ec7764ad0e705e7ef49d774925480b0c /numpy/core/src/arrayobject.c | |
parent | 61838cf125b8308d152266f3eab2c6815377e862 (diff) | |
download | numpy-d0d5a9218ecb31041e9e20807ff2f4ccca0bbbfb.tar.gz |
Fix ticket #289 plus improve the way array data-types print and arrays represent themselves.
Diffstat (limited to 'numpy/core/src/arrayobject.c')
-rw-r--r-- | numpy/core/src/arrayobject.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/numpy/core/src/arrayobject.c b/numpy/core/src/arrayobject.c index 8bd67cb7f..53cc31498 100644 --- a/numpy/core/src/arrayobject.c +++ b/numpy/core/src/arrayobject.c @@ -7739,6 +7739,12 @@ PyArray_FromArray(PyArrayObject *arr, PyArray_Descr *newtype, int flags) if (newtype == NULL) {newtype = oldtype; Py_INCREF(oldtype);} type = newtype->type_num; itemsize = newtype->elsize; + if (itemsize == 0) { + PyArray_DESCR_REPLACE(newtype); + if (newtype == NULL) return NULL; + newtype->elsize = oldtype->elsize; + itemsize = newtype->elsize; + } /* Don't copy if sizes are compatible */ if ((flags & ENSURECOPY) || PyArray_EquivTypes(oldtype, newtype)) { @@ -11126,13 +11132,11 @@ arraydescr_str(PyArray_Descr *self) PyString_ConcatAndDel(&t, PyString_FromString(")")); sub = t; } + else if (PyDataType_ISFLEXIBLE(self) || !PyArray_ISNBO(self->byteorder)) { + sub = arraydescr_protocol_typestr_get(self); + } else { - if (!PyArray_ISNBO(self->byteorder)) { - sub = arraydescr_protocol_typestr_get(self); - } - else { - sub = arraydescr_typename_get(self); - } + sub = arraydescr_typename_get(self); } return sub; } |