17db96d56Sopenharmony_ci/*[clinic input]
27db96d56Sopenharmony_cipreserve
37db96d56Sopenharmony_ci[clinic start generated code]*/
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciPyDoc_STRVAR(array_array___copy____doc__,
67db96d56Sopenharmony_ci"__copy__($self, /)\n"
77db96d56Sopenharmony_ci"--\n"
87db96d56Sopenharmony_ci"\n"
97db96d56Sopenharmony_ci"Return a copy of the array.");
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci#define ARRAY_ARRAY___COPY___METHODDEF    \
127db96d56Sopenharmony_ci    {"__copy__", (PyCFunction)array_array___copy__, METH_NOARGS, array_array___copy____doc__},
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_cistatic PyObject *
157db96d56Sopenharmony_ciarray_array___copy___impl(arrayobject *self);
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_cistatic PyObject *
187db96d56Sopenharmony_ciarray_array___copy__(arrayobject *self, PyObject *Py_UNUSED(ignored))
197db96d56Sopenharmony_ci{
207db96d56Sopenharmony_ci    return array_array___copy___impl(self);
217db96d56Sopenharmony_ci}
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ciPyDoc_STRVAR(array_array___deepcopy____doc__,
247db96d56Sopenharmony_ci"__deepcopy__($self, unused, /)\n"
257db96d56Sopenharmony_ci"--\n"
267db96d56Sopenharmony_ci"\n"
277db96d56Sopenharmony_ci"Return a copy of the array.");
287db96d56Sopenharmony_ci
297db96d56Sopenharmony_ci#define ARRAY_ARRAY___DEEPCOPY___METHODDEF    \
307db96d56Sopenharmony_ci    {"__deepcopy__", (PyCFunction)array_array___deepcopy__, METH_O, array_array___deepcopy____doc__},
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_count__doc__,
337db96d56Sopenharmony_ci"count($self, v, /)\n"
347db96d56Sopenharmony_ci"--\n"
357db96d56Sopenharmony_ci"\n"
367db96d56Sopenharmony_ci"Return number of occurrences of v in the array.");
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ci#define ARRAY_ARRAY_COUNT_METHODDEF    \
397db96d56Sopenharmony_ci    {"count", (PyCFunction)array_array_count, METH_O, array_array_count__doc__},
407db96d56Sopenharmony_ci
417db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_index__doc__,
427db96d56Sopenharmony_ci"index($self, v, start=0, stop=sys.maxsize, /)\n"
437db96d56Sopenharmony_ci"--\n"
447db96d56Sopenharmony_ci"\n"
457db96d56Sopenharmony_ci"Return index of first occurrence of v in the array.\n"
467db96d56Sopenharmony_ci"\n"
477db96d56Sopenharmony_ci"Raise ValueError if the value is not present.");
487db96d56Sopenharmony_ci
497db96d56Sopenharmony_ci#define ARRAY_ARRAY_INDEX_METHODDEF    \
507db96d56Sopenharmony_ci    {"index", _PyCFunction_CAST(array_array_index), METH_FASTCALL, array_array_index__doc__},
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_cistatic PyObject *
537db96d56Sopenharmony_ciarray_array_index_impl(arrayobject *self, PyObject *v, Py_ssize_t start,
547db96d56Sopenharmony_ci                       Py_ssize_t stop);
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_cistatic PyObject *
577db96d56Sopenharmony_ciarray_array_index(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)
587db96d56Sopenharmony_ci{
597db96d56Sopenharmony_ci    PyObject *return_value = NULL;
607db96d56Sopenharmony_ci    PyObject *v;
617db96d56Sopenharmony_ci    Py_ssize_t start = 0;
627db96d56Sopenharmony_ci    Py_ssize_t stop = PY_SSIZE_T_MAX;
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("index", nargs, 1, 3)) {
657db96d56Sopenharmony_ci        goto exit;
667db96d56Sopenharmony_ci    }
677db96d56Sopenharmony_ci    v = args[0];
687db96d56Sopenharmony_ci    if (nargs < 2) {
697db96d56Sopenharmony_ci        goto skip_optional;
707db96d56Sopenharmony_ci    }
717db96d56Sopenharmony_ci    if (!_PyEval_SliceIndexNotNone(args[1], &start)) {
727db96d56Sopenharmony_ci        goto exit;
737db96d56Sopenharmony_ci    }
747db96d56Sopenharmony_ci    if (nargs < 3) {
757db96d56Sopenharmony_ci        goto skip_optional;
767db96d56Sopenharmony_ci    }
777db96d56Sopenharmony_ci    if (!_PyEval_SliceIndexNotNone(args[2], &stop)) {
787db96d56Sopenharmony_ci        goto exit;
797db96d56Sopenharmony_ci    }
807db96d56Sopenharmony_ciskip_optional:
817db96d56Sopenharmony_ci    return_value = array_array_index_impl(self, v, start, stop);
827db96d56Sopenharmony_ci
837db96d56Sopenharmony_ciexit:
847db96d56Sopenharmony_ci    return return_value;
857db96d56Sopenharmony_ci}
867db96d56Sopenharmony_ci
877db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_remove__doc__,
887db96d56Sopenharmony_ci"remove($self, v, /)\n"
897db96d56Sopenharmony_ci"--\n"
907db96d56Sopenharmony_ci"\n"
917db96d56Sopenharmony_ci"Remove the first occurrence of v in the array.");
927db96d56Sopenharmony_ci
937db96d56Sopenharmony_ci#define ARRAY_ARRAY_REMOVE_METHODDEF    \
947db96d56Sopenharmony_ci    {"remove", (PyCFunction)array_array_remove, METH_O, array_array_remove__doc__},
957db96d56Sopenharmony_ci
967db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_pop__doc__,
977db96d56Sopenharmony_ci"pop($self, i=-1, /)\n"
987db96d56Sopenharmony_ci"--\n"
997db96d56Sopenharmony_ci"\n"
1007db96d56Sopenharmony_ci"Return the i-th element and delete it from the array.\n"
1017db96d56Sopenharmony_ci"\n"
1027db96d56Sopenharmony_ci"i defaults to -1.");
1037db96d56Sopenharmony_ci
1047db96d56Sopenharmony_ci#define ARRAY_ARRAY_POP_METHODDEF    \
1057db96d56Sopenharmony_ci    {"pop", _PyCFunction_CAST(array_array_pop), METH_FASTCALL, array_array_pop__doc__},
1067db96d56Sopenharmony_ci
1077db96d56Sopenharmony_cistatic PyObject *
1087db96d56Sopenharmony_ciarray_array_pop_impl(arrayobject *self, Py_ssize_t i);
1097db96d56Sopenharmony_ci
1107db96d56Sopenharmony_cistatic PyObject *
1117db96d56Sopenharmony_ciarray_array_pop(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)
1127db96d56Sopenharmony_ci{
1137db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1147db96d56Sopenharmony_ci    Py_ssize_t i = -1;
1157db96d56Sopenharmony_ci
1167db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("pop", nargs, 0, 1)) {
1177db96d56Sopenharmony_ci        goto exit;
1187db96d56Sopenharmony_ci    }
1197db96d56Sopenharmony_ci    if (nargs < 1) {
1207db96d56Sopenharmony_ci        goto skip_optional;
1217db96d56Sopenharmony_ci    }
1227db96d56Sopenharmony_ci    {
1237db96d56Sopenharmony_ci        Py_ssize_t ival = -1;
1247db96d56Sopenharmony_ci        PyObject *iobj = _PyNumber_Index(args[0]);
1257db96d56Sopenharmony_ci        if (iobj != NULL) {
1267db96d56Sopenharmony_ci            ival = PyLong_AsSsize_t(iobj);
1277db96d56Sopenharmony_ci            Py_DECREF(iobj);
1287db96d56Sopenharmony_ci        }
1297db96d56Sopenharmony_ci        if (ival == -1 && PyErr_Occurred()) {
1307db96d56Sopenharmony_ci            goto exit;
1317db96d56Sopenharmony_ci        }
1327db96d56Sopenharmony_ci        i = ival;
1337db96d56Sopenharmony_ci    }
1347db96d56Sopenharmony_ciskip_optional:
1357db96d56Sopenharmony_ci    return_value = array_array_pop_impl(self, i);
1367db96d56Sopenharmony_ci
1377db96d56Sopenharmony_ciexit:
1387db96d56Sopenharmony_ci    return return_value;
1397db96d56Sopenharmony_ci}
1407db96d56Sopenharmony_ci
1417db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_extend__doc__,
1427db96d56Sopenharmony_ci"extend($self, bb, /)\n"
1437db96d56Sopenharmony_ci"--\n"
1447db96d56Sopenharmony_ci"\n"
1457db96d56Sopenharmony_ci"Append items to the end of the array.");
1467db96d56Sopenharmony_ci
1477db96d56Sopenharmony_ci#define ARRAY_ARRAY_EXTEND_METHODDEF    \
1487db96d56Sopenharmony_ci    {"extend", _PyCFunction_CAST(array_array_extend), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, array_array_extend__doc__},
1497db96d56Sopenharmony_ci
1507db96d56Sopenharmony_cistatic PyObject *
1517db96d56Sopenharmony_ciarray_array_extend_impl(arrayobject *self, PyTypeObject *cls, PyObject *bb);
1527db96d56Sopenharmony_ci
1537db96d56Sopenharmony_cistatic PyObject *
1547db96d56Sopenharmony_ciarray_array_extend(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
1557db96d56Sopenharmony_ci{
1567db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1577db96d56Sopenharmony_ci    static const char * const _keywords[] = {"", NULL};
1587db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "extend", 0};
1597db96d56Sopenharmony_ci    PyObject *argsbuf[1];
1607db96d56Sopenharmony_ci    PyObject *bb;
1617db96d56Sopenharmony_ci
1627db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
1637db96d56Sopenharmony_ci    if (!args) {
1647db96d56Sopenharmony_ci        goto exit;
1657db96d56Sopenharmony_ci    }
1667db96d56Sopenharmony_ci    bb = args[0];
1677db96d56Sopenharmony_ci    return_value = array_array_extend_impl(self, cls, bb);
1687db96d56Sopenharmony_ci
1697db96d56Sopenharmony_ciexit:
1707db96d56Sopenharmony_ci    return return_value;
1717db96d56Sopenharmony_ci}
1727db96d56Sopenharmony_ci
1737db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_insert__doc__,
1747db96d56Sopenharmony_ci"insert($self, i, v, /)\n"
1757db96d56Sopenharmony_ci"--\n"
1767db96d56Sopenharmony_ci"\n"
1777db96d56Sopenharmony_ci"Insert a new item v into the array before position i.");
1787db96d56Sopenharmony_ci
1797db96d56Sopenharmony_ci#define ARRAY_ARRAY_INSERT_METHODDEF    \
1807db96d56Sopenharmony_ci    {"insert", _PyCFunction_CAST(array_array_insert), METH_FASTCALL, array_array_insert__doc__},
1817db96d56Sopenharmony_ci
1827db96d56Sopenharmony_cistatic PyObject *
1837db96d56Sopenharmony_ciarray_array_insert_impl(arrayobject *self, Py_ssize_t i, PyObject *v);
1847db96d56Sopenharmony_ci
1857db96d56Sopenharmony_cistatic PyObject *
1867db96d56Sopenharmony_ciarray_array_insert(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)
1877db96d56Sopenharmony_ci{
1887db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1897db96d56Sopenharmony_ci    Py_ssize_t i;
1907db96d56Sopenharmony_ci    PyObject *v;
1917db96d56Sopenharmony_ci
1927db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
1937db96d56Sopenharmony_ci        goto exit;
1947db96d56Sopenharmony_ci    }
1957db96d56Sopenharmony_ci    {
1967db96d56Sopenharmony_ci        Py_ssize_t ival = -1;
1977db96d56Sopenharmony_ci        PyObject *iobj = _PyNumber_Index(args[0]);
1987db96d56Sopenharmony_ci        if (iobj != NULL) {
1997db96d56Sopenharmony_ci            ival = PyLong_AsSsize_t(iobj);
2007db96d56Sopenharmony_ci            Py_DECREF(iobj);
2017db96d56Sopenharmony_ci        }
2027db96d56Sopenharmony_ci        if (ival == -1 && PyErr_Occurred()) {
2037db96d56Sopenharmony_ci            goto exit;
2047db96d56Sopenharmony_ci        }
2057db96d56Sopenharmony_ci        i = ival;
2067db96d56Sopenharmony_ci    }
2077db96d56Sopenharmony_ci    v = args[1];
2087db96d56Sopenharmony_ci    return_value = array_array_insert_impl(self, i, v);
2097db96d56Sopenharmony_ci
2107db96d56Sopenharmony_ciexit:
2117db96d56Sopenharmony_ci    return return_value;
2127db96d56Sopenharmony_ci}
2137db96d56Sopenharmony_ci
2147db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_buffer_info__doc__,
2157db96d56Sopenharmony_ci"buffer_info($self, /)\n"
2167db96d56Sopenharmony_ci"--\n"
2177db96d56Sopenharmony_ci"\n"
2187db96d56Sopenharmony_ci"Return a tuple (address, length) giving the current memory address and the length in items of the buffer used to hold array\'s contents.\n"
2197db96d56Sopenharmony_ci"\n"
2207db96d56Sopenharmony_ci"The length should be multiplied by the itemsize attribute to calculate\n"
2217db96d56Sopenharmony_ci"the buffer length in bytes.");
2227db96d56Sopenharmony_ci
2237db96d56Sopenharmony_ci#define ARRAY_ARRAY_BUFFER_INFO_METHODDEF    \
2247db96d56Sopenharmony_ci    {"buffer_info", (PyCFunction)array_array_buffer_info, METH_NOARGS, array_array_buffer_info__doc__},
2257db96d56Sopenharmony_ci
2267db96d56Sopenharmony_cistatic PyObject *
2277db96d56Sopenharmony_ciarray_array_buffer_info_impl(arrayobject *self);
2287db96d56Sopenharmony_ci
2297db96d56Sopenharmony_cistatic PyObject *
2307db96d56Sopenharmony_ciarray_array_buffer_info(arrayobject *self, PyObject *Py_UNUSED(ignored))
2317db96d56Sopenharmony_ci{
2327db96d56Sopenharmony_ci    return array_array_buffer_info_impl(self);
2337db96d56Sopenharmony_ci}
2347db96d56Sopenharmony_ci
2357db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_append__doc__,
2367db96d56Sopenharmony_ci"append($self, v, /)\n"
2377db96d56Sopenharmony_ci"--\n"
2387db96d56Sopenharmony_ci"\n"
2397db96d56Sopenharmony_ci"Append new value v to the end of the array.");
2407db96d56Sopenharmony_ci
2417db96d56Sopenharmony_ci#define ARRAY_ARRAY_APPEND_METHODDEF    \
2427db96d56Sopenharmony_ci    {"append", (PyCFunction)array_array_append, METH_O, array_array_append__doc__},
2437db96d56Sopenharmony_ci
2447db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_byteswap__doc__,
2457db96d56Sopenharmony_ci"byteswap($self, /)\n"
2467db96d56Sopenharmony_ci"--\n"
2477db96d56Sopenharmony_ci"\n"
2487db96d56Sopenharmony_ci"Byteswap all items of the array.\n"
2497db96d56Sopenharmony_ci"\n"
2507db96d56Sopenharmony_ci"If the items in the array are not 1, 2, 4, or 8 bytes in size, RuntimeError is\n"
2517db96d56Sopenharmony_ci"raised.");
2527db96d56Sopenharmony_ci
2537db96d56Sopenharmony_ci#define ARRAY_ARRAY_BYTESWAP_METHODDEF    \
2547db96d56Sopenharmony_ci    {"byteswap", (PyCFunction)array_array_byteswap, METH_NOARGS, array_array_byteswap__doc__},
2557db96d56Sopenharmony_ci
2567db96d56Sopenharmony_cistatic PyObject *
2577db96d56Sopenharmony_ciarray_array_byteswap_impl(arrayobject *self);
2587db96d56Sopenharmony_ci
2597db96d56Sopenharmony_cistatic PyObject *
2607db96d56Sopenharmony_ciarray_array_byteswap(arrayobject *self, PyObject *Py_UNUSED(ignored))
2617db96d56Sopenharmony_ci{
2627db96d56Sopenharmony_ci    return array_array_byteswap_impl(self);
2637db96d56Sopenharmony_ci}
2647db96d56Sopenharmony_ci
2657db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_reverse__doc__,
2667db96d56Sopenharmony_ci"reverse($self, /)\n"
2677db96d56Sopenharmony_ci"--\n"
2687db96d56Sopenharmony_ci"\n"
2697db96d56Sopenharmony_ci"Reverse the order of the items in the array.");
2707db96d56Sopenharmony_ci
2717db96d56Sopenharmony_ci#define ARRAY_ARRAY_REVERSE_METHODDEF    \
2727db96d56Sopenharmony_ci    {"reverse", (PyCFunction)array_array_reverse, METH_NOARGS, array_array_reverse__doc__},
2737db96d56Sopenharmony_ci
2747db96d56Sopenharmony_cistatic PyObject *
2757db96d56Sopenharmony_ciarray_array_reverse_impl(arrayobject *self);
2767db96d56Sopenharmony_ci
2777db96d56Sopenharmony_cistatic PyObject *
2787db96d56Sopenharmony_ciarray_array_reverse(arrayobject *self, PyObject *Py_UNUSED(ignored))
2797db96d56Sopenharmony_ci{
2807db96d56Sopenharmony_ci    return array_array_reverse_impl(self);
2817db96d56Sopenharmony_ci}
2827db96d56Sopenharmony_ci
2837db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_fromfile__doc__,
2847db96d56Sopenharmony_ci"fromfile($self, f, n, /)\n"
2857db96d56Sopenharmony_ci"--\n"
2867db96d56Sopenharmony_ci"\n"
2877db96d56Sopenharmony_ci"Read n objects from the file object f and append them to the end of the array.");
2887db96d56Sopenharmony_ci
2897db96d56Sopenharmony_ci#define ARRAY_ARRAY_FROMFILE_METHODDEF    \
2907db96d56Sopenharmony_ci    {"fromfile", _PyCFunction_CAST(array_array_fromfile), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, array_array_fromfile__doc__},
2917db96d56Sopenharmony_ci
2927db96d56Sopenharmony_cistatic PyObject *
2937db96d56Sopenharmony_ciarray_array_fromfile_impl(arrayobject *self, PyTypeObject *cls, PyObject *f,
2947db96d56Sopenharmony_ci                          Py_ssize_t n);
2957db96d56Sopenharmony_ci
2967db96d56Sopenharmony_cistatic PyObject *
2977db96d56Sopenharmony_ciarray_array_fromfile(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
2987db96d56Sopenharmony_ci{
2997db96d56Sopenharmony_ci    PyObject *return_value = NULL;
3007db96d56Sopenharmony_ci    static const char * const _keywords[] = {"", "", NULL};
3017db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "fromfile", 0};
3027db96d56Sopenharmony_ci    PyObject *argsbuf[2];
3037db96d56Sopenharmony_ci    PyObject *f;
3047db96d56Sopenharmony_ci    Py_ssize_t n;
3057db96d56Sopenharmony_ci
3067db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
3077db96d56Sopenharmony_ci    if (!args) {
3087db96d56Sopenharmony_ci        goto exit;
3097db96d56Sopenharmony_ci    }
3107db96d56Sopenharmony_ci    f = args[0];
3117db96d56Sopenharmony_ci    {
3127db96d56Sopenharmony_ci        Py_ssize_t ival = -1;
3137db96d56Sopenharmony_ci        PyObject *iobj = _PyNumber_Index(args[1]);
3147db96d56Sopenharmony_ci        if (iobj != NULL) {
3157db96d56Sopenharmony_ci            ival = PyLong_AsSsize_t(iobj);
3167db96d56Sopenharmony_ci            Py_DECREF(iobj);
3177db96d56Sopenharmony_ci        }
3187db96d56Sopenharmony_ci        if (ival == -1 && PyErr_Occurred()) {
3197db96d56Sopenharmony_ci            goto exit;
3207db96d56Sopenharmony_ci        }
3217db96d56Sopenharmony_ci        n = ival;
3227db96d56Sopenharmony_ci    }
3237db96d56Sopenharmony_ci    return_value = array_array_fromfile_impl(self, cls, f, n);
3247db96d56Sopenharmony_ci
3257db96d56Sopenharmony_ciexit:
3267db96d56Sopenharmony_ci    return return_value;
3277db96d56Sopenharmony_ci}
3287db96d56Sopenharmony_ci
3297db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_tofile__doc__,
3307db96d56Sopenharmony_ci"tofile($self, f, /)\n"
3317db96d56Sopenharmony_ci"--\n"
3327db96d56Sopenharmony_ci"\n"
3337db96d56Sopenharmony_ci"Write all items (as machine values) to the file object f.");
3347db96d56Sopenharmony_ci
3357db96d56Sopenharmony_ci#define ARRAY_ARRAY_TOFILE_METHODDEF    \
3367db96d56Sopenharmony_ci    {"tofile", _PyCFunction_CAST(array_array_tofile), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, array_array_tofile__doc__},
3377db96d56Sopenharmony_ci
3387db96d56Sopenharmony_cistatic PyObject *
3397db96d56Sopenharmony_ciarray_array_tofile_impl(arrayobject *self, PyTypeObject *cls, PyObject *f);
3407db96d56Sopenharmony_ci
3417db96d56Sopenharmony_cistatic PyObject *
3427db96d56Sopenharmony_ciarray_array_tofile(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
3437db96d56Sopenharmony_ci{
3447db96d56Sopenharmony_ci    PyObject *return_value = NULL;
3457db96d56Sopenharmony_ci    static const char * const _keywords[] = {"", NULL};
3467db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "tofile", 0};
3477db96d56Sopenharmony_ci    PyObject *argsbuf[1];
3487db96d56Sopenharmony_ci    PyObject *f;
3497db96d56Sopenharmony_ci
3507db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
3517db96d56Sopenharmony_ci    if (!args) {
3527db96d56Sopenharmony_ci        goto exit;
3537db96d56Sopenharmony_ci    }
3547db96d56Sopenharmony_ci    f = args[0];
3557db96d56Sopenharmony_ci    return_value = array_array_tofile_impl(self, cls, f);
3567db96d56Sopenharmony_ci
3577db96d56Sopenharmony_ciexit:
3587db96d56Sopenharmony_ci    return return_value;
3597db96d56Sopenharmony_ci}
3607db96d56Sopenharmony_ci
3617db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_fromlist__doc__,
3627db96d56Sopenharmony_ci"fromlist($self, list, /)\n"
3637db96d56Sopenharmony_ci"--\n"
3647db96d56Sopenharmony_ci"\n"
3657db96d56Sopenharmony_ci"Append items to array from list.");
3667db96d56Sopenharmony_ci
3677db96d56Sopenharmony_ci#define ARRAY_ARRAY_FROMLIST_METHODDEF    \
3687db96d56Sopenharmony_ci    {"fromlist", (PyCFunction)array_array_fromlist, METH_O, array_array_fromlist__doc__},
3697db96d56Sopenharmony_ci
3707db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_tolist__doc__,
3717db96d56Sopenharmony_ci"tolist($self, /)\n"
3727db96d56Sopenharmony_ci"--\n"
3737db96d56Sopenharmony_ci"\n"
3747db96d56Sopenharmony_ci"Convert array to an ordinary list with the same items.");
3757db96d56Sopenharmony_ci
3767db96d56Sopenharmony_ci#define ARRAY_ARRAY_TOLIST_METHODDEF    \
3777db96d56Sopenharmony_ci    {"tolist", (PyCFunction)array_array_tolist, METH_NOARGS, array_array_tolist__doc__},
3787db96d56Sopenharmony_ci
3797db96d56Sopenharmony_cistatic PyObject *
3807db96d56Sopenharmony_ciarray_array_tolist_impl(arrayobject *self);
3817db96d56Sopenharmony_ci
3827db96d56Sopenharmony_cistatic PyObject *
3837db96d56Sopenharmony_ciarray_array_tolist(arrayobject *self, PyObject *Py_UNUSED(ignored))
3847db96d56Sopenharmony_ci{
3857db96d56Sopenharmony_ci    return array_array_tolist_impl(self);
3867db96d56Sopenharmony_ci}
3877db96d56Sopenharmony_ci
3887db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_frombytes__doc__,
3897db96d56Sopenharmony_ci"frombytes($self, buffer, /)\n"
3907db96d56Sopenharmony_ci"--\n"
3917db96d56Sopenharmony_ci"\n"
3927db96d56Sopenharmony_ci"Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method.");
3937db96d56Sopenharmony_ci
3947db96d56Sopenharmony_ci#define ARRAY_ARRAY_FROMBYTES_METHODDEF    \
3957db96d56Sopenharmony_ci    {"frombytes", (PyCFunction)array_array_frombytes, METH_O, array_array_frombytes__doc__},
3967db96d56Sopenharmony_ci
3977db96d56Sopenharmony_cistatic PyObject *
3987db96d56Sopenharmony_ciarray_array_frombytes_impl(arrayobject *self, Py_buffer *buffer);
3997db96d56Sopenharmony_ci
4007db96d56Sopenharmony_cistatic PyObject *
4017db96d56Sopenharmony_ciarray_array_frombytes(arrayobject *self, PyObject *arg)
4027db96d56Sopenharmony_ci{
4037db96d56Sopenharmony_ci    PyObject *return_value = NULL;
4047db96d56Sopenharmony_ci    Py_buffer buffer = {NULL, NULL};
4057db96d56Sopenharmony_ci
4067db96d56Sopenharmony_ci    if (PyObject_GetBuffer(arg, &buffer, PyBUF_SIMPLE) != 0) {
4077db96d56Sopenharmony_ci        goto exit;
4087db96d56Sopenharmony_ci    }
4097db96d56Sopenharmony_ci    if (!PyBuffer_IsContiguous(&buffer, 'C')) {
4107db96d56Sopenharmony_ci        _PyArg_BadArgument("frombytes", "argument", "contiguous buffer", arg);
4117db96d56Sopenharmony_ci        goto exit;
4127db96d56Sopenharmony_ci    }
4137db96d56Sopenharmony_ci    return_value = array_array_frombytes_impl(self, &buffer);
4147db96d56Sopenharmony_ci
4157db96d56Sopenharmony_ciexit:
4167db96d56Sopenharmony_ci    /* Cleanup for buffer */
4177db96d56Sopenharmony_ci    if (buffer.obj) {
4187db96d56Sopenharmony_ci       PyBuffer_Release(&buffer);
4197db96d56Sopenharmony_ci    }
4207db96d56Sopenharmony_ci
4217db96d56Sopenharmony_ci    return return_value;
4227db96d56Sopenharmony_ci}
4237db96d56Sopenharmony_ci
4247db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_tobytes__doc__,
4257db96d56Sopenharmony_ci"tobytes($self, /)\n"
4267db96d56Sopenharmony_ci"--\n"
4277db96d56Sopenharmony_ci"\n"
4287db96d56Sopenharmony_ci"Convert the array to an array of machine values and return the bytes representation.");
4297db96d56Sopenharmony_ci
4307db96d56Sopenharmony_ci#define ARRAY_ARRAY_TOBYTES_METHODDEF    \
4317db96d56Sopenharmony_ci    {"tobytes", (PyCFunction)array_array_tobytes, METH_NOARGS, array_array_tobytes__doc__},
4327db96d56Sopenharmony_ci
4337db96d56Sopenharmony_cistatic PyObject *
4347db96d56Sopenharmony_ciarray_array_tobytes_impl(arrayobject *self);
4357db96d56Sopenharmony_ci
4367db96d56Sopenharmony_cistatic PyObject *
4377db96d56Sopenharmony_ciarray_array_tobytes(arrayobject *self, PyObject *Py_UNUSED(ignored))
4387db96d56Sopenharmony_ci{
4397db96d56Sopenharmony_ci    return array_array_tobytes_impl(self);
4407db96d56Sopenharmony_ci}
4417db96d56Sopenharmony_ci
4427db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_fromunicode__doc__,
4437db96d56Sopenharmony_ci"fromunicode($self, ustr, /)\n"
4447db96d56Sopenharmony_ci"--\n"
4457db96d56Sopenharmony_ci"\n"
4467db96d56Sopenharmony_ci"Extends this array with data from the unicode string ustr.\n"
4477db96d56Sopenharmony_ci"\n"
4487db96d56Sopenharmony_ci"The array must be a unicode type array; otherwise a ValueError is raised.\n"
4497db96d56Sopenharmony_ci"Use array.frombytes(ustr.encode(...)) to append Unicode data to an array of\n"
4507db96d56Sopenharmony_ci"some other type.");
4517db96d56Sopenharmony_ci
4527db96d56Sopenharmony_ci#define ARRAY_ARRAY_FROMUNICODE_METHODDEF    \
4537db96d56Sopenharmony_ci    {"fromunicode", (PyCFunction)array_array_fromunicode, METH_O, array_array_fromunicode__doc__},
4547db96d56Sopenharmony_ci
4557db96d56Sopenharmony_cistatic PyObject *
4567db96d56Sopenharmony_ciarray_array_fromunicode_impl(arrayobject *self, PyObject *ustr);
4577db96d56Sopenharmony_ci
4587db96d56Sopenharmony_cistatic PyObject *
4597db96d56Sopenharmony_ciarray_array_fromunicode(arrayobject *self, PyObject *arg)
4607db96d56Sopenharmony_ci{
4617db96d56Sopenharmony_ci    PyObject *return_value = NULL;
4627db96d56Sopenharmony_ci    PyObject *ustr;
4637db96d56Sopenharmony_ci
4647db96d56Sopenharmony_ci    if (!PyUnicode_Check(arg)) {
4657db96d56Sopenharmony_ci        _PyArg_BadArgument("fromunicode", "argument", "str", arg);
4667db96d56Sopenharmony_ci        goto exit;
4677db96d56Sopenharmony_ci    }
4687db96d56Sopenharmony_ci    if (PyUnicode_READY(arg) == -1) {
4697db96d56Sopenharmony_ci        goto exit;
4707db96d56Sopenharmony_ci    }
4717db96d56Sopenharmony_ci    ustr = arg;
4727db96d56Sopenharmony_ci    return_value = array_array_fromunicode_impl(self, ustr);
4737db96d56Sopenharmony_ci
4747db96d56Sopenharmony_ciexit:
4757db96d56Sopenharmony_ci    return return_value;
4767db96d56Sopenharmony_ci}
4777db96d56Sopenharmony_ci
4787db96d56Sopenharmony_ciPyDoc_STRVAR(array_array_tounicode__doc__,
4797db96d56Sopenharmony_ci"tounicode($self, /)\n"
4807db96d56Sopenharmony_ci"--\n"
4817db96d56Sopenharmony_ci"\n"
4827db96d56Sopenharmony_ci"Extends this array with data from the unicode string ustr.\n"
4837db96d56Sopenharmony_ci"\n"
4847db96d56Sopenharmony_ci"Convert the array to a unicode string.  The array must be a unicode type array;\n"
4857db96d56Sopenharmony_ci"otherwise a ValueError is raised.  Use array.tobytes().decode() to obtain a\n"
4867db96d56Sopenharmony_ci"unicode string from an array of some other type.");
4877db96d56Sopenharmony_ci
4887db96d56Sopenharmony_ci#define ARRAY_ARRAY_TOUNICODE_METHODDEF    \
4897db96d56Sopenharmony_ci    {"tounicode", (PyCFunction)array_array_tounicode, METH_NOARGS, array_array_tounicode__doc__},
4907db96d56Sopenharmony_ci
4917db96d56Sopenharmony_cistatic PyObject *
4927db96d56Sopenharmony_ciarray_array_tounicode_impl(arrayobject *self);
4937db96d56Sopenharmony_ci
4947db96d56Sopenharmony_cistatic PyObject *
4957db96d56Sopenharmony_ciarray_array_tounicode(arrayobject *self, PyObject *Py_UNUSED(ignored))
4967db96d56Sopenharmony_ci{
4977db96d56Sopenharmony_ci    return array_array_tounicode_impl(self);
4987db96d56Sopenharmony_ci}
4997db96d56Sopenharmony_ci
5007db96d56Sopenharmony_ciPyDoc_STRVAR(array_array___sizeof____doc__,
5017db96d56Sopenharmony_ci"__sizeof__($self, /)\n"
5027db96d56Sopenharmony_ci"--\n"
5037db96d56Sopenharmony_ci"\n"
5047db96d56Sopenharmony_ci"Size of the array in memory, in bytes.");
5057db96d56Sopenharmony_ci
5067db96d56Sopenharmony_ci#define ARRAY_ARRAY___SIZEOF___METHODDEF    \
5077db96d56Sopenharmony_ci    {"__sizeof__", (PyCFunction)array_array___sizeof__, METH_NOARGS, array_array___sizeof____doc__},
5087db96d56Sopenharmony_ci
5097db96d56Sopenharmony_cistatic PyObject *
5107db96d56Sopenharmony_ciarray_array___sizeof___impl(arrayobject *self);
5117db96d56Sopenharmony_ci
5127db96d56Sopenharmony_cistatic PyObject *
5137db96d56Sopenharmony_ciarray_array___sizeof__(arrayobject *self, PyObject *Py_UNUSED(ignored))
5147db96d56Sopenharmony_ci{
5157db96d56Sopenharmony_ci    return array_array___sizeof___impl(self);
5167db96d56Sopenharmony_ci}
5177db96d56Sopenharmony_ci
5187db96d56Sopenharmony_ciPyDoc_STRVAR(array__array_reconstructor__doc__,
5197db96d56Sopenharmony_ci"_array_reconstructor($module, arraytype, typecode, mformat_code, items,\n"
5207db96d56Sopenharmony_ci"                     /)\n"
5217db96d56Sopenharmony_ci"--\n"
5227db96d56Sopenharmony_ci"\n"
5237db96d56Sopenharmony_ci"Internal. Used for pickling support.");
5247db96d56Sopenharmony_ci
5257db96d56Sopenharmony_ci#define ARRAY__ARRAY_RECONSTRUCTOR_METHODDEF    \
5267db96d56Sopenharmony_ci    {"_array_reconstructor", _PyCFunction_CAST(array__array_reconstructor), METH_FASTCALL, array__array_reconstructor__doc__},
5277db96d56Sopenharmony_ci
5287db96d56Sopenharmony_cistatic PyObject *
5297db96d56Sopenharmony_ciarray__array_reconstructor_impl(PyObject *module, PyTypeObject *arraytype,
5307db96d56Sopenharmony_ci                                int typecode,
5317db96d56Sopenharmony_ci                                enum machine_format_code mformat_code,
5327db96d56Sopenharmony_ci                                PyObject *items);
5337db96d56Sopenharmony_ci
5347db96d56Sopenharmony_cistatic PyObject *
5357db96d56Sopenharmony_ciarray__array_reconstructor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
5367db96d56Sopenharmony_ci{
5377db96d56Sopenharmony_ci    PyObject *return_value = NULL;
5387db96d56Sopenharmony_ci    PyTypeObject *arraytype;
5397db96d56Sopenharmony_ci    int typecode;
5407db96d56Sopenharmony_ci    enum machine_format_code mformat_code;
5417db96d56Sopenharmony_ci    PyObject *items;
5427db96d56Sopenharmony_ci
5437db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("_array_reconstructor", nargs, 4, 4)) {
5447db96d56Sopenharmony_ci        goto exit;
5457db96d56Sopenharmony_ci    }
5467db96d56Sopenharmony_ci    arraytype = (PyTypeObject *)args[0];
5477db96d56Sopenharmony_ci    if (!PyUnicode_Check(args[1])) {
5487db96d56Sopenharmony_ci        _PyArg_BadArgument("_array_reconstructor", "argument 2", "a unicode character", args[1]);
5497db96d56Sopenharmony_ci        goto exit;
5507db96d56Sopenharmony_ci    }
5517db96d56Sopenharmony_ci    if (PyUnicode_READY(args[1])) {
5527db96d56Sopenharmony_ci        goto exit;
5537db96d56Sopenharmony_ci    }
5547db96d56Sopenharmony_ci    if (PyUnicode_GET_LENGTH(args[1]) != 1) {
5557db96d56Sopenharmony_ci        _PyArg_BadArgument("_array_reconstructor", "argument 2", "a unicode character", args[1]);
5567db96d56Sopenharmony_ci        goto exit;
5577db96d56Sopenharmony_ci    }
5587db96d56Sopenharmony_ci    typecode = PyUnicode_READ_CHAR(args[1], 0);
5597db96d56Sopenharmony_ci    mformat_code = _PyLong_AsInt(args[2]);
5607db96d56Sopenharmony_ci    if (mformat_code == -1 && PyErr_Occurred()) {
5617db96d56Sopenharmony_ci        goto exit;
5627db96d56Sopenharmony_ci    }
5637db96d56Sopenharmony_ci    items = args[3];
5647db96d56Sopenharmony_ci    return_value = array__array_reconstructor_impl(module, arraytype, typecode, mformat_code, items);
5657db96d56Sopenharmony_ci
5667db96d56Sopenharmony_ciexit:
5677db96d56Sopenharmony_ci    return return_value;
5687db96d56Sopenharmony_ci}
5697db96d56Sopenharmony_ci
5707db96d56Sopenharmony_ciPyDoc_STRVAR(array_array___reduce_ex____doc__,
5717db96d56Sopenharmony_ci"__reduce_ex__($self, value, /)\n"
5727db96d56Sopenharmony_ci"--\n"
5737db96d56Sopenharmony_ci"\n"
5747db96d56Sopenharmony_ci"Return state information for pickling.");
5757db96d56Sopenharmony_ci
5767db96d56Sopenharmony_ci#define ARRAY_ARRAY___REDUCE_EX___METHODDEF    \
5777db96d56Sopenharmony_ci    {"__reduce_ex__", _PyCFunction_CAST(array_array___reduce_ex__), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, array_array___reduce_ex____doc__},
5787db96d56Sopenharmony_ci
5797db96d56Sopenharmony_cistatic PyObject *
5807db96d56Sopenharmony_ciarray_array___reduce_ex___impl(arrayobject *self, PyTypeObject *cls,
5817db96d56Sopenharmony_ci                               PyObject *value);
5827db96d56Sopenharmony_ci
5837db96d56Sopenharmony_cistatic PyObject *
5847db96d56Sopenharmony_ciarray_array___reduce_ex__(arrayobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
5857db96d56Sopenharmony_ci{
5867db96d56Sopenharmony_ci    PyObject *return_value = NULL;
5877db96d56Sopenharmony_ci    static const char * const _keywords[] = {"", NULL};
5887db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "__reduce_ex__", 0};
5897db96d56Sopenharmony_ci    PyObject *argsbuf[1];
5907db96d56Sopenharmony_ci    PyObject *value;
5917db96d56Sopenharmony_ci
5927db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
5937db96d56Sopenharmony_ci    if (!args) {
5947db96d56Sopenharmony_ci        goto exit;
5957db96d56Sopenharmony_ci    }
5967db96d56Sopenharmony_ci    value = args[0];
5977db96d56Sopenharmony_ci    return_value = array_array___reduce_ex___impl(self, cls, value);
5987db96d56Sopenharmony_ci
5997db96d56Sopenharmony_ciexit:
6007db96d56Sopenharmony_ci    return return_value;
6017db96d56Sopenharmony_ci}
6027db96d56Sopenharmony_ci
6037db96d56Sopenharmony_ciPyDoc_STRVAR(array_arrayiterator___reduce____doc__,
6047db96d56Sopenharmony_ci"__reduce__($self, /)\n"
6057db96d56Sopenharmony_ci"--\n"
6067db96d56Sopenharmony_ci"\n"
6077db96d56Sopenharmony_ci"Return state information for pickling.");
6087db96d56Sopenharmony_ci
6097db96d56Sopenharmony_ci#define ARRAY_ARRAYITERATOR___REDUCE___METHODDEF    \
6107db96d56Sopenharmony_ci    {"__reduce__", _PyCFunction_CAST(array_arrayiterator___reduce__), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, array_arrayiterator___reduce____doc__},
6117db96d56Sopenharmony_ci
6127db96d56Sopenharmony_cistatic PyObject *
6137db96d56Sopenharmony_ciarray_arrayiterator___reduce___impl(arrayiterobject *self, PyTypeObject *cls);
6147db96d56Sopenharmony_ci
6157db96d56Sopenharmony_cistatic PyObject *
6167db96d56Sopenharmony_ciarray_arrayiterator___reduce__(arrayiterobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
6177db96d56Sopenharmony_ci{
6187db96d56Sopenharmony_ci    if (nargs) {
6197db96d56Sopenharmony_ci        PyErr_SetString(PyExc_TypeError, "__reduce__() takes no arguments");
6207db96d56Sopenharmony_ci        return NULL;
6217db96d56Sopenharmony_ci    }
6227db96d56Sopenharmony_ci    return array_arrayiterator___reduce___impl(self, cls);
6237db96d56Sopenharmony_ci}
6247db96d56Sopenharmony_ci
6257db96d56Sopenharmony_ciPyDoc_STRVAR(array_arrayiterator___setstate____doc__,
6267db96d56Sopenharmony_ci"__setstate__($self, state, /)\n"
6277db96d56Sopenharmony_ci"--\n"
6287db96d56Sopenharmony_ci"\n"
6297db96d56Sopenharmony_ci"Set state information for unpickling.");
6307db96d56Sopenharmony_ci
6317db96d56Sopenharmony_ci#define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF    \
6327db96d56Sopenharmony_ci    {"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__},
6337db96d56Sopenharmony_ci/*[clinic end generated code: output=85a5fec90d9615b9 input=a9049054013a1b77]*/
634