NUMPY_API * * Get New ArrayFlagsObject */
| 25 | * Get New ArrayFlagsObject |
| 26 | */ |
| 27 | NPY_NO_EXPORT PyObject * |
| 28 | PyArray_NewFlagsObject(PyObject *obj) |
| 29 | { |
| 30 | PyObject *flagobj; |
| 31 | int flags; |
| 32 | |
| 33 | if (obj == NULL) { |
| 34 | flags = NPY_ARRAY_C_CONTIGUOUS | |
| 35 | NPY_ARRAY_OWNDATA | |
| 36 | NPY_ARRAY_F_CONTIGUOUS | |
| 37 | NPY_ARRAY_ALIGNED; |
| 38 | } |
| 39 | else { |
| 40 | if (!PyArray_Check(obj)) { |
| 41 | PyErr_SetString(PyExc_ValueError, |
| 42 | "Need a NumPy array to create a flags object"); |
| 43 | return NULL; |
| 44 | } |
| 45 | |
| 46 | flags = PyArray_FLAGS((PyArrayObject *)obj); |
| 47 | } |
| 48 | flagobj = PyArrayFlags_Type.tp_alloc(&PyArrayFlags_Type, 0); |
| 49 | if (flagobj == NULL) { |
| 50 | return NULL; |
| 51 | } |
| 52 | Py_XINCREF(obj); |
| 53 | ((PyArrayFlagsObject *)flagobj)->arr = obj; |
| 54 | ((PyArrayFlagsObject *)flagobj)->flags = flags; |
| 55 | return flagobj; |
| 56 | } |
| 57 | |
| 58 | /*NUMPY_API |
| 59 | * Update Several Flags at once. |
no test coverage detected