Branch data Line data Source code
1 : : /*[clinic input]
2 : : preserve
3 : : [clinic start generated code]*/
4 : :
5 : : PyDoc_STRVAR(_collections__count_elements__doc__,
6 : : "_count_elements($module, mapping, iterable, /)\n"
7 : : "--\n"
8 : : "\n"
9 : : "Count elements in the iterable, updating the mapping");
10 : :
11 : : #define _COLLECTIONS__COUNT_ELEMENTS_METHODDEF \
12 : : {"_count_elements", _PyCFunction_CAST(_collections__count_elements), METH_FASTCALL, _collections__count_elements__doc__},
13 : :
14 : : static PyObject *
15 : : _collections__count_elements_impl(PyObject *module, PyObject *mapping,
16 : : PyObject *iterable);
17 : :
18 : : static PyObject *
19 : 2026 : _collections__count_elements(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
20 : : {
21 : 2026 : PyObject *return_value = NULL;
22 : : PyObject *mapping;
23 : : PyObject *iterable;
24 : :
25 [ + - - + : 2026 : if (!_PyArg_CheckPositional("_count_elements", nargs, 2, 2)) {
- - ]
26 : 0 : goto exit;
27 : : }
28 : 2026 : mapping = args[0];
29 : 2026 : iterable = args[1];
30 : 2026 : return_value = _collections__count_elements_impl(module, mapping, iterable);
31 : :
32 : 2026 : exit:
33 : 2026 : return return_value;
34 : : }
35 : :
36 : : static PyObject *
37 : : tuplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc);
38 : :
39 : : static PyObject *
40 : 131676 : tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
41 : : {
42 : 131676 : PyObject *return_value = NULL;
43 : : Py_ssize_t index;
44 : : PyObject *doc;
45 : :
46 [ - + ]: 131676 : if ((type == &tuplegetter_type ||
47 [ - - - + ]: 131676 : type->tp_init == tuplegetter_type.tp_init) &&
48 [ # # ]: 0 : !_PyArg_NoKeywords("_tuplegetter", kwargs)) {
49 : 0 : goto exit;
50 : : }
51 [ + - - + : 131676 : if (!_PyArg_CheckPositional("_tuplegetter", PyTuple_GET_SIZE(args), 2, 2)) {
- - ]
52 : 0 : goto exit;
53 : : }
54 : : {
55 : 131676 : Py_ssize_t ival = -1;
56 : 131676 : PyObject *iobj = _PyNumber_Index(PyTuple_GET_ITEM(args, 0));
57 [ + - ]: 131676 : if (iobj != NULL) {
58 : 131676 : ival = PyLong_AsSsize_t(iobj);
59 : 131676 : Py_DECREF(iobj);
60 : : }
61 [ - + - - ]: 131676 : if (ival == -1 && PyErr_Occurred()) {
62 : 0 : goto exit;
63 : : }
64 : 131676 : index = ival;
65 : : }
66 : 131676 : doc = PyTuple_GET_ITEM(args, 1);
67 : 131676 : return_value = tuplegetter_new_impl(type, index, doc);
68 : :
69 : 131676 : exit:
70 : 131676 : return return_value;
71 : : }
72 : : /*[clinic end generated code: output=36b0948c4676c831 input=a9049054013a1b77]*/
|