17db96d56Sopenharmony_ci/*[clinic input]
27db96d56Sopenharmony_cipreserve
37db96d56Sopenharmony_ci[clinic start generated code]*/
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciPyDoc_STRVAR(_collections__count_elements__doc__,
67db96d56Sopenharmony_ci"_count_elements($module, mapping, iterable, /)\n"
77db96d56Sopenharmony_ci"--\n"
87db96d56Sopenharmony_ci"\n"
97db96d56Sopenharmony_ci"Count elements in the iterable, updating the mapping");
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci#define _COLLECTIONS__COUNT_ELEMENTS_METHODDEF    \
127db96d56Sopenharmony_ci    {"_count_elements", _PyCFunction_CAST(_collections__count_elements), METH_FASTCALL, _collections__count_elements__doc__},
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_cistatic PyObject *
157db96d56Sopenharmony_ci_collections__count_elements_impl(PyObject *module, PyObject *mapping,
167db96d56Sopenharmony_ci                                  PyObject *iterable);
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_cistatic PyObject *
197db96d56Sopenharmony_ci_collections__count_elements(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
207db96d56Sopenharmony_ci{
217db96d56Sopenharmony_ci    PyObject *return_value = NULL;
227db96d56Sopenharmony_ci    PyObject *mapping;
237db96d56Sopenharmony_ci    PyObject *iterable;
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("_count_elements", nargs, 2, 2)) {
267db96d56Sopenharmony_ci        goto exit;
277db96d56Sopenharmony_ci    }
287db96d56Sopenharmony_ci    mapping = args[0];
297db96d56Sopenharmony_ci    iterable = args[1];
307db96d56Sopenharmony_ci    return_value = _collections__count_elements_impl(module, mapping, iterable);
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ciexit:
337db96d56Sopenharmony_ci    return return_value;
347db96d56Sopenharmony_ci}
357db96d56Sopenharmony_ci
367db96d56Sopenharmony_cistatic PyObject *
377db96d56Sopenharmony_cituplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc);
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_cistatic PyObject *
407db96d56Sopenharmony_cituplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
417db96d56Sopenharmony_ci{
427db96d56Sopenharmony_ci    PyObject *return_value = NULL;
437db96d56Sopenharmony_ci    Py_ssize_t index;
447db96d56Sopenharmony_ci    PyObject *doc;
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ci    if ((type == &tuplegetter_type ||
477db96d56Sopenharmony_ci         type->tp_init == tuplegetter_type.tp_init) &&
487db96d56Sopenharmony_ci        !_PyArg_NoKeywords("_tuplegetter", kwargs)) {
497db96d56Sopenharmony_ci        goto exit;
507db96d56Sopenharmony_ci    }
517db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("_tuplegetter", PyTuple_GET_SIZE(args), 2, 2)) {
527db96d56Sopenharmony_ci        goto exit;
537db96d56Sopenharmony_ci    }
547db96d56Sopenharmony_ci    {
557db96d56Sopenharmony_ci        Py_ssize_t ival = -1;
567db96d56Sopenharmony_ci        PyObject *iobj = _PyNumber_Index(PyTuple_GET_ITEM(args, 0));
577db96d56Sopenharmony_ci        if (iobj != NULL) {
587db96d56Sopenharmony_ci            ival = PyLong_AsSsize_t(iobj);
597db96d56Sopenharmony_ci            Py_DECREF(iobj);
607db96d56Sopenharmony_ci        }
617db96d56Sopenharmony_ci        if (ival == -1 && PyErr_Occurred()) {
627db96d56Sopenharmony_ci            goto exit;
637db96d56Sopenharmony_ci        }
647db96d56Sopenharmony_ci        index = ival;
657db96d56Sopenharmony_ci    }
667db96d56Sopenharmony_ci    doc = PyTuple_GET_ITEM(args, 1);
677db96d56Sopenharmony_ci    return_value = tuplegetter_new_impl(type, index, doc);
687db96d56Sopenharmony_ci
697db96d56Sopenharmony_ciexit:
707db96d56Sopenharmony_ci    return return_value;
717db96d56Sopenharmony_ci}
727db96d56Sopenharmony_ci/*[clinic end generated code: output=36b0948c4676c831 input=a9049054013a1b77]*/
73