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

Function arraydescr_setstate

numpy/core/src/multiarray/descriptor.c:2757–3117  ·  view source on GitHub ↗

* state is at least byteorder, subarray, and fields but could include elsize * and alignment for EXTENDED arrays */

Source from the content-addressed store, hash-verified

2755 * and alignment for EXTENDED arrays
2756 */
2757static PyObject *
2758arraydescr_setstate(PyArray_Descr *self, PyObject *args)
2759{
2760 int elsize = -1, alignment = -1;
2761 int version = 4;
2762 char endian;
2763 PyObject *endian_obj;
2764 PyObject *subarray, *fields, *names = NULL, *metadata=NULL;
2765 int incref_names = 1;
2766 int int_dtypeflags = 0;
2767 char dtypeflags;
2768
2769 if (self->fields == Py_None) {
2770 Py_RETURN_NONE;
2771 }
2772 if (PyTuple_GET_SIZE(args) != 1
2773 || !(PyTuple_Check(PyTuple_GET_ITEM(args, 0)))) {
2774 PyErr_BadInternalCall();
2775 return NULL;
2776 }
2777 switch (PyTuple_GET_SIZE(PyTuple_GET_ITEM(args,0))) {
2778 case 9:
2779 if (!PyArg_ParseTuple(args, "(iOOOOiiiO):__setstate__",
2780 &version, &endian_obj,
2781 &subarray, &names, &fields, &elsize,
2782 &alignment, &int_dtypeflags, &metadata)) {
2783 PyErr_Clear();
2784 return NULL;
2785 }
2786 break;
2787 case 8:
2788 if (!PyArg_ParseTuple(args, "(iOOOOiii):__setstate__",
2789 &version, &endian_obj,
2790 &subarray, &names, &fields, &elsize,
2791 &alignment, &int_dtypeflags)) {
2792 return NULL;
2793 }
2794 break;
2795 case 7:
2796 if (!PyArg_ParseTuple(args, "(iOOOOii):__setstate__",
2797 &version, &endian_obj,
2798 &subarray, &names, &fields, &elsize,
2799 &alignment)) {
2800 return NULL;
2801 }
2802 break;
2803 case 6:
2804 if (!PyArg_ParseTuple(args, "(iOOOii):__setstate__",
2805 &version,
2806 &endian_obj, &subarray, &fields,
2807 &elsize, &alignment)) {
2808 return NULL;
2809 }
2810 break;
2811 case 5:
2812 version = 0;
2813 if (!PyArg_ParseTuple(args, "(OOOii):__setstate__",
2814 &endian_obj, &subarray, &fields, &elsize,

Callers

nothing calls this directly

Tested by

no test coverage detected