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