diff options
| author | Travis Oliphant <oliphant@enthought.com> | 2006-01-15 03:10:36 +0000 |
|---|---|---|
| committer | Travis Oliphant <oliphant@enthought.com> | 2006-01-15 03:10:36 +0000 |
| commit | 0283b6f480b7239dc1390dadf29fcb5e1f2516e3 (patch) | |
| tree | 6d75e6fb25fb7ff9e5668df1dfad9c7edba7a00e /numpy/core/src | |
| parent | d04bb02f393f0122e52b804bf548e0e18a0a2ecc (diff) | |
| download | numpy-0283b6f480b7239dc1390dadf29fcb5e1f2516e3.tar.gz | |
Moved .dtypedescr to .dtype; .dtype->.dtype.type; .dtypestr ->.dtype.str; .dtypechar -> .dtype.char
Diffstat (limited to 'numpy/core/src')
| -rw-r--r-- | numpy/core/src/arraymethods.c | 4 | ||||
| -rw-r--r-- | numpy/core/src/arrayobject.c | 95 | ||||
| -rw-r--r-- | numpy/core/src/multiarraymodule.c | 14 | ||||
| -rw-r--r-- | numpy/core/src/scalartypes.inc.src | 49 | ||||
| -rw-r--r-- | numpy/core/src/ufuncobject.c | 1 |
5 files changed, 55 insertions, 108 deletions
diff --git a/numpy/core/src/arraymethods.c b/numpy/core/src/arraymethods.c index 15d8eb3fe..27e8d4866 100644 --- a/numpy/core/src/arraymethods.c +++ b/numpy/core/src/arraymethods.c @@ -884,8 +884,8 @@ array_reduce(PyArrayObject *self, PyObject *args) (PyObject *)self->ob_type, Py_BuildValue("(N)", PyInt_FromLong(0)), - PyObject_GetAttrString((PyObject *)self, - "dtypechar"))); + PyObject_GetAttrString((PyObject *)(self->descr), + "char"))); /* Now fill in object's state. This is a tuple with 4 arguments diff --git a/numpy/core/src/arrayobject.c b/numpy/core/src/arrayobject.c index 9b34fcda0..047bb9683 100644 --- a/numpy/core/src/arrayobject.c +++ b/numpy/core/src/arrayobject.c @@ -3850,7 +3850,7 @@ PyArray_FillWithScalar(PyArrayObject *arr, PyObject *obj) static PyObject * array_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds) { - static char *kwlist[] = {"shape", "dtype", "buffer", + static char *kwlist[] = {"shape", "dtype", "buffer", /* XXX ? */ "offset", "strides", "fortran", NULL}; PyArray_Descr *descr=NULL; @@ -4216,16 +4216,6 @@ array_nbytes_get(PyArrayObject *self) } -static PyObject * -array_typechar_get(PyArrayObject *self) -{ - if PyArray_ISEXTENDED(self) - return PyString_FromFormat("%c%d", (self->descr->type), - self->descr->elsize); - else - return PyString_FromStringAndSize(&(self->descr->type), 1); -} - static PyObject *arraydescr_protocol_typestr_get(PyArray_Descr *); static PyObject * @@ -4383,15 +4373,6 @@ array_struct_get(PyArrayObject *self) } static PyObject * -array_type_get(PyArrayObject *self) -{ - Py_INCREF(self->descr->typeobj); - return (PyObject *)self->descr->typeobj; -} - - - -static PyObject * array_base_get(PyArrayObject *self) { if (self->base == NULL) { @@ -4642,19 +4623,7 @@ static PyGetSetDef array_getsetlist[] = { (getter)array_base_get, NULL, "base object"}, - {"dtype", - (getter)array_type_get, - NULL, - "get array type class"}, - {"dtypechar", - (getter)array_typechar_get, - NULL, - "get array type character code"}, - {"dtypestr", - (getter)array_typestr_get, - NULL, - "get array type string"}, - {"dtypedescr", + {"dtype", (getter)array_descr_get, (setter)array_descr_set, "get(set) data-type-descriptor for array"}, @@ -4731,7 +4700,7 @@ static char Arraytype__doc__[] = " 2) If buffer is an object exporting the buffer interface, then\n" " all keywords are interpreted.\n" " The dtype parameter can be any object that can be interpreted \n" - " as a numpy.dtypedescr object.\n\n" + " as a numpy.dtype object.\n\n" " No __init__ method is needed because the array is fully \n" " initialized after the __new__ method."; @@ -8010,10 +7979,10 @@ arraydescr_dealloc(PyArray_Descr *self) /* we need to be careful about setting attributes because these objects are pointed to by arrays that depend on them for interpreting - data. Currently no attributes of dtypedescr objects can be set. + data. Currently no attributes of dtype objects can be set. */ static PyMemberDef arraydescr_members[] = { - {"dtype", T_OBJECT, offsetof(PyArray_Descr, typeobj), RO, NULL}, + {"type", T_OBJECT, offsetof(PyArray_Descr, typeobj), RO, NULL}, {"kind", T_CHAR, offsetof(PyArray_Descr, kind), RO, NULL}, {"char", T_CHAR, offsetof(PyArray_Descr, type), RO, NULL}, {"num", T_INT, offsetof(PyArray_Descr, type_num), RO, NULL}, @@ -8037,16 +8006,28 @@ arraydescr_subdescr_get(PyArray_Descr *self) static PyObject * arraydescr_protocol_typestr_get(PyArray_Descr *self) { - char basic_=self->kind; - char endian = self->byteorder; - - if (endian == '=') { - endian = '<'; - if (!PyArray_IsNativeByteOrder(endian)) endian = '>'; - } - - return PyString_FromFormat("%c%c%d", endian, basic_, - self->elsize); + char basic_=self->kind; + char endian = self->byteorder; + + if (endian == '=') { + endian = '<'; + if (!PyArray_IsNativeByteOrder(endian)) endian = '>'; + } + + return PyString_FromFormat("%c%c%d", endian, basic_, + self->elsize); +} + +static PyObject * +arraydescr_protocol_typename_get(PyArray_Descr *self) +{ + int len; + PyTypeObject *typeobj = self->typeobj; + + /* Both are equivalents, but second is more resistent to changes */ +/* len = strlen(typeobj->tp_name) - 8; */ + len = strchr(typeobj->tp_name, (int)'_')-(typeobj->tp_name); + return PyString_FromStringAndSize(typeobj->tp_name, len); } static PyObject * @@ -8114,10 +8095,14 @@ static PyGetSetDef arraydescr_getsets[] = { (getter)arraydescr_protocol_descr_get, NULL, "The array_protocol type descriptor."}, - {"dtypestr", + {"str", (getter)arraydescr_protocol_typestr_get, NULL, "The array_protocol typestring."}, + {"name", + (getter)arraydescr_protocol_typename_get, + NULL, + "The array_protocol typename."}, {"isbuiltin", (getter)arraydescr_isbuiltin_get, NULL, @@ -8208,7 +8193,7 @@ arraydescr_reduce(PyArray_Descr *self, PyObject *args) if (ret == NULL) return NULL; mod = PyImport_ImportModule("numpy.core.multiarray"); if (mod == NULL) {Py_DECREF(ret); return NULL;} - obj = PyObject_GetAttrString(mod, "dtypedescr"); + obj = PyObject_GetAttrString(mod, "dtype"); Py_DECREF(mod); if (obj == NULL) {Py_DECREF(ret); return NULL;} PyTuple_SET_ITEM(ret, 0, obj); @@ -8394,11 +8379,11 @@ PyArray_DescrNewByteorder(PyArray_Descr *self, char newendian) static char doc_arraydescr_newbyteorder[] = "self.newbyteorder(<endian>)" - " returns a copy of the dtypedescr object\n" + " returns a copy of the dtype object\n" " with altered byteorders. If <endian> is not given all byteorders\n" " are swapped. Otherwise endian can be '>', '<', or '=' to force\n" " a byteorder. Descriptors in all fields are also updated in the\n" - " new dtypedescr object."; + " new dtype object."; static PyObject * arraydescr_newbyteorder(PyArray_Descr *self, PyObject *args) @@ -8436,7 +8421,7 @@ arraydescr_str(PyArray_Descr *self) PyErr_Clear(); } else sub = PyObject_Str(lst); - Py_XDECREF(lst); + Py_XDECREF(lst); if (self->type_num != PyArray_VOID) { PyObject *p; PyObject *t=PyString_FromString("'"); @@ -8475,7 +8460,7 @@ static PyObject * arraydescr_repr(PyArray_Descr *self) { PyObject *sub, *s; - s = PyString_FromString("dtypedescr("); + s = PyString_FromString("dtype("); sub = arraydescr_str(self); PyString_ConcatAndDel(&s, sub); sub = PyString_FromString(")"); @@ -8487,8 +8472,8 @@ static int arraydescr_compare(PyArray_Descr *self, PyObject *other) { if (!PyArray_DescrCheck(other)) { - PyErr_SetString(PyExc_TypeError, - "not a dtypedescr object."); + PyErr_SetString(PyExc_TypeError, + "not a dtype object."); return -1; } if (PyArray_EquivTypes(self, (PyArray_Descr *)other)) return 0; @@ -8499,7 +8484,7 @@ arraydescr_compare(PyArray_Descr *self, PyObject *other) static PyTypeObject PyArrayDescr_Type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ - "numpy.dtypedescr", /* tp_name */ + "numpy.dtype", /* tp_name */ sizeof(PyArray_Descr), /* tp_basicsize */ 0, /* tp_itemsize */ /* methods */ diff --git a/numpy/core/src/multiarraymodule.c b/numpy/core/src/multiarraymodule.c index 06265ba6b..63bd73858 100644 --- a/numpy/core/src/multiarraymodule.c +++ b/numpy/core/src/multiarraymodule.c @@ -37,7 +37,7 @@ _arraydescr_fromobj(PyObject *obj) PyArray_Descr *new; int ret; - dtypedescr = PyObject_GetAttrString(obj, "dtypedescr"); + dtypedescr = PyObject_GetAttrString(obj, "dtype"); PyErr_Clear(); if (dtypedescr) { ret = PyArray_DescrConverter(dtypedescr, &new); @@ -160,7 +160,7 @@ PyArray_View(PyArrayObject *self, PyArray_Descr *type, PyTypeObject *pytype) PyArray_BASE(new) = (PyObject *)self; if (type != NULL) { - if (PyObject_SetAttrString(new, "dtypedescr", + if (PyObject_SetAttrString(new, "dtype", (PyObject *)type) < 0) { Py_DECREF(new); Py_DECREF(type); @@ -4065,7 +4065,7 @@ static PyObject * _array_fromobject(PyObject *ignored, PyObject *args, PyObject *kws) { PyObject *op, *ret=NULL; - static char *kwd[]= {"object", "dtype", "copy", "fortran", "subok", + static char *kwd[]= {"object", "dtype", "copy", "fortran", "subok", /* XXX ? */ NULL}; Bool subok=FALSE; Bool copy=TRUE; @@ -4182,13 +4182,13 @@ array_empty(PyObject *ignored, PyObject *args, PyObject *kwds) return ret; } -static char doc_scalar[] = "scalar(dtypedescr,obj) will return a new scalar array of the given type initialized with obj. Mainly for pickle support. The dtypedescr must be a valid data-type descriptor. If dtypedescr corresponds to an OBJECT descriptor, then obj can be any object, otherwise obj must be a string. If obj is not given it will be interpreted as None for object type and zeros for all other types."; +static char doc_scalar[] = "scalar(dtype,obj) will return a new scalar array of the given type initialized with obj. Mainly for pickle support. The dtype must be a valid data-type descriptor. If dtype corresponds to an OBJECT descriptor, then obj can be any object, otherwise obj must be a string. If obj is not given it will be interpreted as None for object type and zeros for all other types."; static PyObject * array_scalar(PyObject *ignored, PyObject *args, PyObject *kwds) { - static char *kwlist[] = {"dtypedescr","obj", NULL}; + static char *kwlist[] = {"dtype","obj", NULL}; PyArray_Descr *typecode; PyObject *obj=NULL; int alloc=0; @@ -4284,7 +4284,7 @@ static char doc_zeros[] = "zeros((d1,...,dn),dtype=int,fortran=0) will return a static PyObject * array_zeros(PyObject *ignored, PyObject *args, PyObject *kwds) { - static char *kwlist[] = {"shape","dtype","fortran",NULL}; + static char *kwlist[] = {"shape","dtype","fortran",NULL}; /* XXX ? */ PyArray_Descr *typecode=NULL; PyArray_Dims shape = {NULL, 0}; Bool fortran = FALSE; @@ -5501,7 +5501,7 @@ DL_EXPORT(void) initmultiarray(void) { PyDict_SetItemString(d, "broadcast", (PyObject *)&PyArrayMultiIter_Type); Py_INCREF(&PyArrayDescr_Type); - PyDict_SetItemString(d, "dtypedescr", (PyObject *)&PyArrayDescr_Type); + PyDict_SetItemString(d, "dtype", (PyObject *)&PyArrayDescr_Type); /* Doesn't need to be exposed to Python Py_INCREF(&PyArrayMapIter_Type); diff --git a/numpy/core/src/scalartypes.inc.src b/numpy/core/src/scalartypes.inc.src index 2a8fcf4a9..8fed7cb4a 100644 --- a/numpy/core/src/scalartypes.inc.src +++ b/numpy/core/src/scalartypes.inc.src @@ -718,24 +718,6 @@ gentype_size_get(PyObject *self) return PyInt_FromLong(1); } - -static PyObject * -gentype_typechar_get(PyObject *self) -{ - PyArray_Descr *descr; - char type; - int elsize; - - descr = PyArray_DescrFromScalar(self); - type = descr->type; - elsize = descr->elsize; - Py_DECREF(descr); - if (PyArray_IsScalar(self, Flexible)) - return PyString_FromFormat("%c%d", (int)type, elsize); - else - return PyString_FromStringAndSize(&type, 1); -} - static void gentype_struct_free(void *ptr, void *arr) { @@ -769,7 +751,7 @@ gentype_typestr_get(PyObject *self) PyObject *ret; arr = (PyArrayObject *)PyArray_FromScalar(self, NULL); - ret = PyObject_GetAttrString((PyObject *)arr, "dtypestr"); + ret = PyObject_GetAttrString((PyObject *)arr->descr, "str"); Py_DECREF(arr); return ret; } @@ -788,13 +770,6 @@ gentype_descr_get(PyObject *self) static PyObject * -gentype_type_get(PyObject *self) -{ - Py_INCREF(self->ob_type); - return (PyObject *)self->ob_type; -} - -static PyObject * gentype_typedescr_get(PyObject *self) { return (PyObject *)PyArray_DescrFromScalar(self); @@ -937,19 +912,7 @@ static PyGetSetDef gentype_getsets[] = { (getter)gentype_base_get, (setter)0, "base object"}, - {"dtype", - (getter)gentype_type_get, - (setter)0, - "get gentype type class"}, - {"dtypechar", - (getter)gentype_typechar_get, - (setter)0, - "get gentype type character code"}, - {"dtypestr", - (getter)gentype_typestr_get, - NULL, - "get array type string"}, - {"dtypedescr", + {"dtype", (getter)gentype_typedescr_get, NULL, "get array data-descriptor"}, @@ -1143,7 +1106,7 @@ voidtype_setfield(PyVoidScalarObject *self, PyObject *args, PyObject *kwds) PyObject *value, *src; int mysize; char *dptr; - static char *kwlist[] = {"value", "dtype", "offset", 0}; + static char *kwlist[] = {"value", "dtype", "offset", 0};/* XXX ? */ if ((self->flags & WRITEABLE) != WRITEABLE) { PyErr_SetString(PyExc_RuntimeError, @@ -1200,7 +1163,7 @@ gentype_reduce(PyObject *self, PyObject *args) Py_DECREF(mod); if (obj == NULL) return NULL; PyTuple_SET_ITEM(ret, 0, obj); - obj = PyObject_GetAttrString((PyObject *)self, "dtypedescr"); + obj = PyObject_GetAttrString((PyObject *)self, "dtype"); if PyArray_IsScalar(self, Object) { mod = ((PyObjectScalarObject *)self)->obval; PyTuple_SET_ITEM(ret, 1, @@ -1375,10 +1338,10 @@ static PyGetSetDef voidtype_getsets[] = { (getter)voidtype_flags_get, (setter)0, "integer value of flags"}, - {"dtypedescr", + {"dtype", (getter)voidtype_dtypedescr_get, (setter)0, - "dtypedescr object"}, + "dtype object"}, {NULL, NULL} }; diff --git a/numpy/core/src/ufuncobject.c b/numpy/core/src/ufuncobject.c index b903b6646..00dee2f19 100644 --- a/numpy/core/src/ufuncobject.c +++ b/numpy/core/src/ufuncobject.c @@ -2515,7 +2515,6 @@ _find_array_wrap(PyObject *args) { int nargs, i; int np = 0; - int argmax = 0; double priority[MAX_ARGS]; double maxpriority; PyObject *with_wrap[MAX_ARGS]; |
