* state is at least byteorder, subarray, and fields but could include elsize * and alignment for EXTENDED arrays */
| 2755 | * and alignment for EXTENDED arrays |
| 2756 | */ |
| 2757 | static PyObject * |
| 2758 | arraydescr_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, |
nothing calls this directly
no test coverage detected