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 | |
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')
-rw-r--r-- | numpy/core/numeric.py | 2 | ||||
-rw-r--r-- | numpy/core/src/arrayobject.c | 16 |
2 files changed, 11 insertions, 7 deletions
diff --git a/numpy/core/numeric.py b/numpy/core/numeric.py index 19f0c1fb5..c56301a08 100644 --- a/numpy/core/numeric.py +++ b/numpy/core/numeric.py @@ -427,7 +427,7 @@ def array_repr(arr, max_line_width=None, precision=None, suppress_small=None): if issubclass(arr.dtype.type, flexible): typename = str(arr.dtype) lf = '\n'+' '*len("array(") - return cName + "(%s, %sdtype=%s)" % (lst, lf, typename) + return cName + "(%s, %sdtype='%s')" % (lst, lf, typename) def array_str(a, max_line_width=None, precision=None, suppress_small=None): return array2string(a, max_line_width, precision, suppress_small, ' ', "", str) 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; } |