17db96d56Sopenharmony_ci/*[clinic input]
27db96d56Sopenharmony_cipreserve
37db96d56Sopenharmony_ci[clinic start generated code]*/
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciPyDoc_STRVAR(tuple_index__doc__,
67db96d56Sopenharmony_ci"index($self, value, start=0, stop=sys.maxsize, /)\n"
77db96d56Sopenharmony_ci"--\n"
87db96d56Sopenharmony_ci"\n"
97db96d56Sopenharmony_ci"Return first index of value.\n"
107db96d56Sopenharmony_ci"\n"
117db96d56Sopenharmony_ci"Raises ValueError if the value is not present.");
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci#define TUPLE_INDEX_METHODDEF    \
147db96d56Sopenharmony_ci    {"index", _PyCFunction_CAST(tuple_index), METH_FASTCALL, tuple_index__doc__},
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_cistatic PyObject *
177db96d56Sopenharmony_cituple_index_impl(PyTupleObject *self, PyObject *value, Py_ssize_t start,
187db96d56Sopenharmony_ci                 Py_ssize_t stop);
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_cistatic PyObject *
217db96d56Sopenharmony_cituple_index(PyTupleObject *self, PyObject *const *args, Py_ssize_t nargs)
227db96d56Sopenharmony_ci{
237db96d56Sopenharmony_ci    PyObject *return_value = NULL;
247db96d56Sopenharmony_ci    PyObject *value;
257db96d56Sopenharmony_ci    Py_ssize_t start = 0;
267db96d56Sopenharmony_ci    Py_ssize_t stop = PY_SSIZE_T_MAX;
277db96d56Sopenharmony_ci
287db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("index", nargs, 1, 3)) {
297db96d56Sopenharmony_ci        goto exit;
307db96d56Sopenharmony_ci    }
317db96d56Sopenharmony_ci    value = args[0];
327db96d56Sopenharmony_ci    if (nargs < 2) {
337db96d56Sopenharmony_ci        goto skip_optional;
347db96d56Sopenharmony_ci    }
357db96d56Sopenharmony_ci    if (!_PyEval_SliceIndexNotNone(args[1], &start)) {
367db96d56Sopenharmony_ci        goto exit;
377db96d56Sopenharmony_ci    }
387db96d56Sopenharmony_ci    if (nargs < 3) {
397db96d56Sopenharmony_ci        goto skip_optional;
407db96d56Sopenharmony_ci    }
417db96d56Sopenharmony_ci    if (!_PyEval_SliceIndexNotNone(args[2], &stop)) {
427db96d56Sopenharmony_ci        goto exit;
437db96d56Sopenharmony_ci    }
447db96d56Sopenharmony_ciskip_optional:
457db96d56Sopenharmony_ci    return_value = tuple_index_impl(self, value, start, stop);
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ciexit:
487db96d56Sopenharmony_ci    return return_value;
497db96d56Sopenharmony_ci}
507db96d56Sopenharmony_ci
517db96d56Sopenharmony_ciPyDoc_STRVAR(tuple_count__doc__,
527db96d56Sopenharmony_ci"count($self, value, /)\n"
537db96d56Sopenharmony_ci"--\n"
547db96d56Sopenharmony_ci"\n"
557db96d56Sopenharmony_ci"Return number of occurrences of value.");
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_ci#define TUPLE_COUNT_METHODDEF    \
587db96d56Sopenharmony_ci    {"count", (PyCFunction)tuple_count, METH_O, tuple_count__doc__},
597db96d56Sopenharmony_ci
607db96d56Sopenharmony_ciPyDoc_STRVAR(tuple_new__doc__,
617db96d56Sopenharmony_ci"tuple(iterable=(), /)\n"
627db96d56Sopenharmony_ci"--\n"
637db96d56Sopenharmony_ci"\n"
647db96d56Sopenharmony_ci"Built-in immutable sequence.\n"
657db96d56Sopenharmony_ci"\n"
667db96d56Sopenharmony_ci"If no argument is given, the constructor returns an empty tuple.\n"
677db96d56Sopenharmony_ci"If iterable is specified the tuple is initialized from iterable\'s items.\n"
687db96d56Sopenharmony_ci"\n"
697db96d56Sopenharmony_ci"If the argument is a tuple, the return value is the same object.");
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_cistatic PyObject *
727db96d56Sopenharmony_cituple_new_impl(PyTypeObject *type, PyObject *iterable);
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_cistatic PyObject *
757db96d56Sopenharmony_cituple_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
767db96d56Sopenharmony_ci{
777db96d56Sopenharmony_ci    PyObject *return_value = NULL;
787db96d56Sopenharmony_ci    PyObject *iterable = NULL;
797db96d56Sopenharmony_ci
807db96d56Sopenharmony_ci    if ((type == &PyTuple_Type ||
817db96d56Sopenharmony_ci         type->tp_init == PyTuple_Type.tp_init) &&
827db96d56Sopenharmony_ci        !_PyArg_NoKeywords("tuple", kwargs)) {
837db96d56Sopenharmony_ci        goto exit;
847db96d56Sopenharmony_ci    }
857db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("tuple", PyTuple_GET_SIZE(args), 0, 1)) {
867db96d56Sopenharmony_ci        goto exit;
877db96d56Sopenharmony_ci    }
887db96d56Sopenharmony_ci    if (PyTuple_GET_SIZE(args) < 1) {
897db96d56Sopenharmony_ci        goto skip_optional;
907db96d56Sopenharmony_ci    }
917db96d56Sopenharmony_ci    iterable = PyTuple_GET_ITEM(args, 0);
927db96d56Sopenharmony_ciskip_optional:
937db96d56Sopenharmony_ci    return_value = tuple_new_impl(type, iterable);
947db96d56Sopenharmony_ci
957db96d56Sopenharmony_ciexit:
967db96d56Sopenharmony_ci    return return_value;
977db96d56Sopenharmony_ci}
987db96d56Sopenharmony_ci
997db96d56Sopenharmony_ciPyDoc_STRVAR(tuple___getnewargs____doc__,
1007db96d56Sopenharmony_ci"__getnewargs__($self, /)\n"
1017db96d56Sopenharmony_ci"--\n"
1027db96d56Sopenharmony_ci"\n");
1037db96d56Sopenharmony_ci
1047db96d56Sopenharmony_ci#define TUPLE___GETNEWARGS___METHODDEF    \
1057db96d56Sopenharmony_ci    {"__getnewargs__", (PyCFunction)tuple___getnewargs__, METH_NOARGS, tuple___getnewargs____doc__},
1067db96d56Sopenharmony_ci
1077db96d56Sopenharmony_cistatic PyObject *
1087db96d56Sopenharmony_cituple___getnewargs___impl(PyTupleObject *self);
1097db96d56Sopenharmony_ci
1107db96d56Sopenharmony_cistatic PyObject *
1117db96d56Sopenharmony_cituple___getnewargs__(PyTupleObject *self, PyObject *Py_UNUSED(ignored))
1127db96d56Sopenharmony_ci{
1137db96d56Sopenharmony_ci    return tuple___getnewargs___impl(self);
1147db96d56Sopenharmony_ci}
1157db96d56Sopenharmony_ci/*[clinic end generated code: output=044496dc917f8a97 input=a9049054013a1b77]*/
116