MCPcopy Create free account
hub / github.com/numpy/numpy / array_preparearray

Function array_preparearray

numpy/core/src/multiarray/methods.c:1007–1040  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1005
1006
1007static PyObject *
1008array_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
1043static PyObject *

Callers

nothing calls this directly

Calls 7

PyArray_DESCRFunction · 0.85
PyArray_NDIMFunction · 0.85
PyArray_DIMSFunction · 0.85
PyArray_STRIDESFunction · 0.85
PyArray_DATAFunction · 0.85
PyArray_FLAGSFunction · 0.85

Tested by

no test coverage detected