blob: 538d52e763064973ed1e6c28c7b25c456c21ebbf [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 \
Victor Stinner0c4a8282017-01-17 02:21:47 +010012 {"fromkeys", (PyCFunction)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 Storchaka6969eaf2017-07-03 21:20:15 +030018dict_fromkeys(PyTypeObject *type, PyObject **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 \
51 {"get", (PyCFunction)dict_get, METH_FASTCALL, dict_get__doc__},
52
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 Storchaka6969eaf2017-07-03 21:20:15 +030057dict_get(PyDictObject *self, PyObject **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 \
83 {"setdefault", (PyCFunction)dict_setdefault, METH_FASTCALL, dict_setdefault__doc__},
84
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 Storchaka6969eaf2017-07-03 21:20:15 +030090dict_setdefault(PyDictObject *self, PyObject **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}
Serhiy Storchaka6969eaf2017-07-03 21:20:15 +0300106/*[clinic end generated code: output=8d09902e60b7ab02 input=a9049054013a1b77]*/