summaryrefslogtreecommitdiff
path: root/scipy/base/src/arrayobject.c
diff options
context:
space:
mode:
authorTravis Oliphant <oliphant@enthought.com>2005-09-29 00:52:06 +0000
committerTravis Oliphant <oliphant@enthought.com>2005-09-29 00:52:06 +0000
commit4742ef06a5888264488fc250d40d7ad47b718cb2 (patch)
treee3134ef2977e4d191b8b0672757367235b5d0871 /scipy/base/src/arrayobject.c
parenta8240d84ad9317a8c6e08e45c5cabdb7b562b6f5 (diff)
downloadnumpy-4742ef06a5888264488fc250d40d7ad47b718cb2.tar.gz
a.flags returns fancy array-connected dictionary.
Diffstat (limited to 'scipy/base/src/arrayobject.c')
-rw-r--r--scipy/base/src/arrayobject.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/scipy/base/src/arrayobject.c b/scipy/base/src/arrayobject.c
index e07f2f08c..17a9914a8 100644
--- a/scipy/base/src/arrayobject.c
+++ b/scipy/base/src/arrayobject.c
@@ -3530,26 +3530,17 @@ array_ndim_get(PyArrayObject *self)
static PyObject *
array_flags_get(PyArrayObject *self)
{
- PyObject *dict;
-
- dict = PyDict_New();
-
-#define ADDFLAG(flag) \
- PyDict_SetItemString(dict, #flag, \
- self->flags & flag ? Py_True : Py_False)
+ static PyObject *module=NULL;
- ADDFLAG(CONTIGUOUS);
- ADDFLAG(OWNDATA);
- ADDFLAG(FORTRAN);
- ADDFLAG(ALIGNED);
- ADDFLAG(NOTSWAPPED);
- ADDFLAG(WRITEABLE);
- ADDFLAG(UPDATEIFCOPY);
- return dict;
- /* return PyInt_FromLong(self->flags);*/
-#undef ADDFLAG
+ if (module==NULL) {
+ module = PyImport_ImportModule("scipy.base._internal");
+ if (module == NULL) return NULL;
+ }
+ return PyObject_CallMethod(module, "flagsobj", "Oi",
+ self, self->flags);
}
+/*
static int
array_flags_set(PyArrayObject *self, PyObject *obj)
{
@@ -3616,6 +3607,7 @@ array_flags_set(PyArrayObject *self, PyObject *obj)
"Object must be a dictionary");
return -1;
}
+*/
static PyObject *
@@ -4173,8 +4165,8 @@ static PyGetSetDef array_getsetlist[] = {
"number of array dimensions"},
{"flags",
(getter)array_flags_get,
- (setter)array_flags_set,
- "integer value of flags"},
+ NULL,
+ "special dictionary of flags"},
{"shape",
(getter)array_shape_get,
(setter)array_shape_set,