17db96d56Sopenharmony_ci/*[clinic input]
27db96d56Sopenharmony_cipreserve
37db96d56Sopenharmony_ci[clinic start generated code]*/
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciPyDoc_STRVAR(dict_fromkeys__doc__,
67db96d56Sopenharmony_ci"fromkeys($type, iterable, value=None, /)\n"
77db96d56Sopenharmony_ci"--\n"
87db96d56Sopenharmony_ci"\n"
97db96d56Sopenharmony_ci"Create a new dictionary with keys from iterable and values set to value.");
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci#define DICT_FROMKEYS_METHODDEF    \
127db96d56Sopenharmony_ci    {"fromkeys", _PyCFunction_CAST(dict_fromkeys), METH_FASTCALL|METH_CLASS, dict_fromkeys__doc__},
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_cistatic PyObject *
157db96d56Sopenharmony_cidict_fromkeys_impl(PyTypeObject *type, PyObject *iterable, PyObject *value);
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_cistatic PyObject *
187db96d56Sopenharmony_cidict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs)
197db96d56Sopenharmony_ci{
207db96d56Sopenharmony_ci    PyObject *return_value = NULL;
217db96d56Sopenharmony_ci    PyObject *iterable;
227db96d56Sopenharmony_ci    PyObject *value = Py_None;
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("fromkeys", nargs, 1, 2)) {
257db96d56Sopenharmony_ci        goto exit;
267db96d56Sopenharmony_ci    }
277db96d56Sopenharmony_ci    iterable = args[0];
287db96d56Sopenharmony_ci    if (nargs < 2) {
297db96d56Sopenharmony_ci        goto skip_optional;
307db96d56Sopenharmony_ci    }
317db96d56Sopenharmony_ci    value = args[1];
327db96d56Sopenharmony_ciskip_optional:
337db96d56Sopenharmony_ci    return_value = dict_fromkeys_impl(type, iterable, value);
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ciexit:
367db96d56Sopenharmony_ci    return return_value;
377db96d56Sopenharmony_ci}
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_ciPyDoc_STRVAR(dict___contains____doc__,
407db96d56Sopenharmony_ci"__contains__($self, key, /)\n"
417db96d56Sopenharmony_ci"--\n"
427db96d56Sopenharmony_ci"\n"
437db96d56Sopenharmony_ci"True if the dictionary has the specified key, else False.");
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci#define DICT___CONTAINS___METHODDEF    \
467db96d56Sopenharmony_ci    {"__contains__", (PyCFunction)dict___contains__, METH_O|METH_COEXIST, dict___contains____doc__},
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ciPyDoc_STRVAR(dict_get__doc__,
497db96d56Sopenharmony_ci"get($self, key, default=None, /)\n"
507db96d56Sopenharmony_ci"--\n"
517db96d56Sopenharmony_ci"\n"
527db96d56Sopenharmony_ci"Return the value for key if key is in the dictionary, else default.");
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci#define DICT_GET_METHODDEF    \
557db96d56Sopenharmony_ci    {"get", _PyCFunction_CAST(dict_get), METH_FASTCALL, dict_get__doc__},
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_cistatic PyObject *
587db96d56Sopenharmony_cidict_get_impl(PyDictObject *self, PyObject *key, PyObject *default_value);
597db96d56Sopenharmony_ci
607db96d56Sopenharmony_cistatic PyObject *
617db96d56Sopenharmony_cidict_get(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
627db96d56Sopenharmony_ci{
637db96d56Sopenharmony_ci    PyObject *return_value = NULL;
647db96d56Sopenharmony_ci    PyObject *key;
657db96d56Sopenharmony_ci    PyObject *default_value = Py_None;
667db96d56Sopenharmony_ci
677db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("get", nargs, 1, 2)) {
687db96d56Sopenharmony_ci        goto exit;
697db96d56Sopenharmony_ci    }
707db96d56Sopenharmony_ci    key = args[0];
717db96d56Sopenharmony_ci    if (nargs < 2) {
727db96d56Sopenharmony_ci        goto skip_optional;
737db96d56Sopenharmony_ci    }
747db96d56Sopenharmony_ci    default_value = args[1];
757db96d56Sopenharmony_ciskip_optional:
767db96d56Sopenharmony_ci    return_value = dict_get_impl(self, key, default_value);
777db96d56Sopenharmony_ci
787db96d56Sopenharmony_ciexit:
797db96d56Sopenharmony_ci    return return_value;
807db96d56Sopenharmony_ci}
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ciPyDoc_STRVAR(dict_setdefault__doc__,
837db96d56Sopenharmony_ci"setdefault($self, key, default=None, /)\n"
847db96d56Sopenharmony_ci"--\n"
857db96d56Sopenharmony_ci"\n"
867db96d56Sopenharmony_ci"Insert key with a value of default if key is not in the dictionary.\n"
877db96d56Sopenharmony_ci"\n"
887db96d56Sopenharmony_ci"Return the value for key if key is in the dictionary, else default.");
897db96d56Sopenharmony_ci
907db96d56Sopenharmony_ci#define DICT_SETDEFAULT_METHODDEF    \
917db96d56Sopenharmony_ci    {"setdefault", _PyCFunction_CAST(dict_setdefault), METH_FASTCALL, dict_setdefault__doc__},
927db96d56Sopenharmony_ci
937db96d56Sopenharmony_cistatic PyObject *
947db96d56Sopenharmony_cidict_setdefault_impl(PyDictObject *self, PyObject *key,
957db96d56Sopenharmony_ci                     PyObject *default_value);
967db96d56Sopenharmony_ci
977db96d56Sopenharmony_cistatic PyObject *
987db96d56Sopenharmony_cidict_setdefault(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
997db96d56Sopenharmony_ci{
1007db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1017db96d56Sopenharmony_ci    PyObject *key;
1027db96d56Sopenharmony_ci    PyObject *default_value = Py_None;
1037db96d56Sopenharmony_ci
1047db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("setdefault", nargs, 1, 2)) {
1057db96d56Sopenharmony_ci        goto exit;
1067db96d56Sopenharmony_ci    }
1077db96d56Sopenharmony_ci    key = args[0];
1087db96d56Sopenharmony_ci    if (nargs < 2) {
1097db96d56Sopenharmony_ci        goto skip_optional;
1107db96d56Sopenharmony_ci    }
1117db96d56Sopenharmony_ci    default_value = args[1];
1127db96d56Sopenharmony_ciskip_optional:
1137db96d56Sopenharmony_ci    return_value = dict_setdefault_impl(self, key, default_value);
1147db96d56Sopenharmony_ci
1157db96d56Sopenharmony_ciexit:
1167db96d56Sopenharmony_ci    return return_value;
1177db96d56Sopenharmony_ci}
1187db96d56Sopenharmony_ci
1197db96d56Sopenharmony_ciPyDoc_STRVAR(dict_pop__doc__,
1207db96d56Sopenharmony_ci"pop($self, key, default=<unrepresentable>, /)\n"
1217db96d56Sopenharmony_ci"--\n"
1227db96d56Sopenharmony_ci"\n"
1237db96d56Sopenharmony_ci"D.pop(k[,d]) -> v, remove specified key and return the corresponding value.\n"
1247db96d56Sopenharmony_ci"\n"
1257db96d56Sopenharmony_ci"If the key is not found, return the default if given; otherwise,\n"
1267db96d56Sopenharmony_ci"raise a KeyError.");
1277db96d56Sopenharmony_ci
1287db96d56Sopenharmony_ci#define DICT_POP_METHODDEF    \
1297db96d56Sopenharmony_ci    {"pop", _PyCFunction_CAST(dict_pop), METH_FASTCALL, dict_pop__doc__},
1307db96d56Sopenharmony_ci
1317db96d56Sopenharmony_cistatic PyObject *
1327db96d56Sopenharmony_cidict_pop_impl(PyDictObject *self, PyObject *key, PyObject *default_value);
1337db96d56Sopenharmony_ci
1347db96d56Sopenharmony_cistatic PyObject *
1357db96d56Sopenharmony_cidict_pop(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
1367db96d56Sopenharmony_ci{
1377db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1387db96d56Sopenharmony_ci    PyObject *key;
1397db96d56Sopenharmony_ci    PyObject *default_value = NULL;
1407db96d56Sopenharmony_ci
1417db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("pop", nargs, 1, 2)) {
1427db96d56Sopenharmony_ci        goto exit;
1437db96d56Sopenharmony_ci    }
1447db96d56Sopenharmony_ci    key = args[0];
1457db96d56Sopenharmony_ci    if (nargs < 2) {
1467db96d56Sopenharmony_ci        goto skip_optional;
1477db96d56Sopenharmony_ci    }
1487db96d56Sopenharmony_ci    default_value = args[1];
1497db96d56Sopenharmony_ciskip_optional:
1507db96d56Sopenharmony_ci    return_value = dict_pop_impl(self, key, default_value);
1517db96d56Sopenharmony_ci
1527db96d56Sopenharmony_ciexit:
1537db96d56Sopenharmony_ci    return return_value;
1547db96d56Sopenharmony_ci}
1557db96d56Sopenharmony_ci
1567db96d56Sopenharmony_ciPyDoc_STRVAR(dict_popitem__doc__,
1577db96d56Sopenharmony_ci"popitem($self, /)\n"
1587db96d56Sopenharmony_ci"--\n"
1597db96d56Sopenharmony_ci"\n"
1607db96d56Sopenharmony_ci"Remove and return a (key, value) pair as a 2-tuple.\n"
1617db96d56Sopenharmony_ci"\n"
1627db96d56Sopenharmony_ci"Pairs are returned in LIFO (last-in, first-out) order.\n"
1637db96d56Sopenharmony_ci"Raises KeyError if the dict is empty.");
1647db96d56Sopenharmony_ci
1657db96d56Sopenharmony_ci#define DICT_POPITEM_METHODDEF    \
1667db96d56Sopenharmony_ci    {"popitem", (PyCFunction)dict_popitem, METH_NOARGS, dict_popitem__doc__},
1677db96d56Sopenharmony_ci
1687db96d56Sopenharmony_cistatic PyObject *
1697db96d56Sopenharmony_cidict_popitem_impl(PyDictObject *self);
1707db96d56Sopenharmony_ci
1717db96d56Sopenharmony_cistatic PyObject *
1727db96d56Sopenharmony_cidict_popitem(PyDictObject *self, PyObject *Py_UNUSED(ignored))
1737db96d56Sopenharmony_ci{
1747db96d56Sopenharmony_ci    return dict_popitem_impl(self);
1757db96d56Sopenharmony_ci}
1767db96d56Sopenharmony_ci
1777db96d56Sopenharmony_ciPyDoc_STRVAR(dict___reversed____doc__,
1787db96d56Sopenharmony_ci"__reversed__($self, /)\n"
1797db96d56Sopenharmony_ci"--\n"
1807db96d56Sopenharmony_ci"\n"
1817db96d56Sopenharmony_ci"Return a reverse iterator over the dict keys.");
1827db96d56Sopenharmony_ci
1837db96d56Sopenharmony_ci#define DICT___REVERSED___METHODDEF    \
1847db96d56Sopenharmony_ci    {"__reversed__", (PyCFunction)dict___reversed__, METH_NOARGS, dict___reversed____doc__},
1857db96d56Sopenharmony_ci
1867db96d56Sopenharmony_cistatic PyObject *
1877db96d56Sopenharmony_cidict___reversed___impl(PyDictObject *self);
1887db96d56Sopenharmony_ci
1897db96d56Sopenharmony_cistatic PyObject *
1907db96d56Sopenharmony_cidict___reversed__(PyDictObject *self, PyObject *Py_UNUSED(ignored))
1917db96d56Sopenharmony_ci{
1927db96d56Sopenharmony_ci    return dict___reversed___impl(self);
1937db96d56Sopenharmony_ci}
1947db96d56Sopenharmony_ci/*[clinic end generated code: output=582766ac0154c8bf input=a9049054013a1b77]*/
195