blob: 5db3a426f459529dbcaa43c6b9e545114effe816 [file] [log] [blame]
Serhiy Storchaka1009bf12015-04-03 23:53:51 +03001/*[clinic input]
2preserve
3[clinic start generated code]*/
4
5PyDoc_STRVAR(dict_fromkeys__doc__,
6"fromkeys($type, iterable, value=None, /)\n"
7"--\n"
8"\n"
Serhiy Storchaka78d9e582017-01-25 00:30:04 +02009"Create a new dictionary with keys from iterable and values set to value.");
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030010
11#define DICT_FROMKEYS_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +020012 {"fromkeys", (PyCFunction)(void(*)(void))dict_fromkeys, METH_FASTCALL|METH_CLASS, dict_fromkeys__doc__},
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030013
14static PyObject *
15dict_fromkeys_impl(PyTypeObject *type, PyObject *iterable, PyObject *value);
16
17static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +020018dict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030019{
20 PyObject *return_value = NULL;
21 PyObject *iterable;
22 PyObject *value = Py_None;
23
Sylvain74453812017-06-10 06:51:48 +020024 if (!_PyArg_UnpackStack(args, nargs, "fromkeys",
25 1, 2,
26 &iterable, &value)) {
Victor Stinner0c4a8282017-01-17 02:21:47 +010027 goto exit;
28 }
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030029 return_value = dict_fromkeys_impl(type, iterable, value);
30
31exit:
32 return return_value;
33}
34
35PyDoc_STRVAR(dict___contains____doc__,
36"__contains__($self, key, /)\n"
37"--\n"
38"\n"
Serhiy Storchaka19d25972017-02-04 08:05:07 +020039"True if the dictionary has the specified key, else False.");
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030040
41#define DICT___CONTAINS___METHODDEF \
42 {"__contains__", (PyCFunction)dict___contains__, METH_O|METH_COEXIST, dict___contains____doc__},
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010043
44PyDoc_STRVAR(dict_get__doc__,
45"get($self, key, default=None, /)\n"
46"--\n"
47"\n"
Serhiy Storchaka78d9e582017-01-25 00:30:04 +020048"Return the value for key if key is in the dictionary, else default.");
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010049
50#define DICT_GET_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +020051 {"get", (PyCFunction)(void(*)(void))dict_get, METH_FASTCALL, dict_get__doc__},
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010052
53static PyObject *
Serhiy Storchaka48088ee2017-01-19 19:00:30 +020054dict_get_impl(PyDictObject *self, PyObject *key, PyObject *default_value);
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010055
56static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +020057dict_get(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010058{
59 PyObject *return_value = NULL;
60 PyObject *key;
Serhiy Storchaka48088ee2017-01-19 19:00:30 +020061 PyObject *default_value = Py_None;
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010062
Sylvain74453812017-06-10 06:51:48 +020063 if (!_PyArg_UnpackStack(args, nargs, "get",
64 1, 2,
65 &key, &default_value)) {
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010066 goto exit;
67 }
Serhiy Storchaka48088ee2017-01-19 19:00:30 +020068 return_value = dict_get_impl(self, key, default_value);
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010069
70exit:
71 return return_value;
72}
73
74PyDoc_STRVAR(dict_setdefault__doc__,
75"setdefault($self, key, default=None, /)\n"
76"--\n"
77"\n"
Serhiy Storchaka78d9e582017-01-25 00:30:04 +020078"Insert key with a value of default if key is not in the dictionary.\n"
79"\n"
80"Return the value for key if key is in the dictionary, else default.");
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010081
82#define DICT_SETDEFAULT_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +020083 {"setdefault", (PyCFunction)(void(*)(void))dict_setdefault, METH_FASTCALL, dict_setdefault__doc__},
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010084
85static PyObject *
Serhiy Storchaka48088ee2017-01-19 19:00:30 +020086dict_setdefault_impl(PyDictObject *self, PyObject *key,
87 PyObject *default_value);
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010088
89static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +020090dict_setdefault(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010091{
92 PyObject *return_value = NULL;
93 PyObject *key;
Serhiy Storchaka48088ee2017-01-19 19:00:30 +020094 PyObject *default_value = Py_None;
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010095
Sylvain74453812017-06-10 06:51:48 +020096 if (!_PyArg_UnpackStack(args, nargs, "setdefault",
97 1, 2,
98 &key, &default_value)) {
Victor Stinner7dc6a5f2017-01-19 12:37:13 +010099 goto exit;
100 }
Serhiy Storchaka48088ee2017-01-19 19:00:30 +0200101 return_value = dict_setdefault_impl(self, key, default_value);
Victor Stinner7dc6a5f2017-01-19 12:37:13 +0100102
103exit:
104 return return_value;
105}
Rémi Lapeyre6531bf62018-11-06 01:38:54 +0100106
107PyDoc_STRVAR(dict___reversed____doc__,
108"__reversed__($self, /)\n"
109"--\n"
110"\n"
111"Return a reverse iterator over the dict keys.");
112
113#define DICT___REVERSED___METHODDEF \
114 {"__reversed__", (PyCFunction)dict___reversed__, METH_NOARGS, dict___reversed____doc__},
115
116static PyObject *
117dict___reversed___impl(PyDictObject *self);
118
119static PyObject *
120dict___reversed__(PyDictObject *self, PyObject *Py_UNUSED(ignored))
121{
122 return dict___reversed___impl(self);
123}
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200124/*[clinic end generated code: output=193e08cb8099fe22 input=a9049054013a1b77]*/