| 1005 | |
| 1006 | |
| 1007 | static PyObject * |
| 1008 | array_preparearray(PyArrayObject *self, PyObject *args) |
| 1009 | { |
| 1010 | PyObject *obj; |
| 1011 | PyArrayObject *arr; |
| 1012 | PyArray_Descr *dtype; |
| 1013 | |
| 1014 | if (PyTuple_Size(args) < 1) { |
| 1015 | PyErr_SetString(PyExc_TypeError, |
| 1016 | "only accepts 1 argument"); |
| 1017 | return NULL; |
| 1018 | } |
| 1019 | obj = PyTuple_GET_ITEM(args, 0); |
| 1020 | if (!PyArray_Check(obj)) { |
| 1021 | PyErr_SetString(PyExc_TypeError, |
| 1022 | "can only be called with ndarray object"); |
| 1023 | return NULL; |
| 1024 | } |
| 1025 | arr = (PyArrayObject *)obj; |
| 1026 | |
| 1027 | if (Py_TYPE(self) == Py_TYPE(arr)) { |
| 1028 | /* No need to create a new view */ |
| 1029 | Py_INCREF(arr); |
| 1030 | return (PyObject *)arr; |
| 1031 | } |
| 1032 | |
| 1033 | dtype = PyArray_DESCR(arr); |
| 1034 | Py_INCREF(dtype); |
| 1035 | return PyArray_NewFromDescrAndBase( |
| 1036 | Py_TYPE(self), dtype, |
| 1037 | PyArray_NDIM(arr), PyArray_DIMS(arr), PyArray_STRIDES(arr), |
| 1038 | PyArray_DATA(arr), |
| 1039 | PyArray_FLAGS(arr), (PyObject *)self, (PyObject *)arr); |
| 1040 | } |
| 1041 | |
| 1042 | |
| 1043 | static PyObject * |
nothing calls this directly
no test coverage detected