summaryrefslogtreecommitdiff
path: root/numpy/core/src
diff options
context:
space:
mode:
authorTravis Oliphant <oliphant@enthought.com>2006-01-15 03:10:36 +0000
committerTravis Oliphant <oliphant@enthought.com>2006-01-15 03:10:36 +0000
commit0283b6f480b7239dc1390dadf29fcb5e1f2516e3 (patch)
tree6d75e6fb25fb7ff9e5668df1dfad9c7edba7a00e /numpy/core/src
parentd04bb02f393f0122e52b804bf548e0e18a0a2ecc (diff)
downloadnumpy-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.c4
-rw-r--r--numpy/core/src/arrayobject.c95
-rw-r--r--numpy/core/src/multiarraymodule.c14
-rw-r--r--numpy/core/src/scalartypes.inc.src49
-rw-r--r--numpy/core/src/ufuncobject.c1
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];