blob: 3f06c0b5da758d8ebf9c52e8b5b1a11d12617091 [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"
9"Returns a new dict with keys from iterable and values equal to value.");
10
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 *
Victor Stinner0c4a8282017-01-17 02:21:47 +010018dict_fromkeys(PyTypeObject *type, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030019{
20 PyObject *return_value = NULL;
21 PyObject *iterable;
22 PyObject *value = Py_None;
23
Victor Stinner0c4a8282017-01-17 02:21:47 +010024 if (!_PyArg_UnpackStack(args, nargs, "fromkeys",
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030025 1, 2,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030026 &iterable, &value)) {
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030027 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030028 }
Victor Stinner0c4a8282017-01-17 02:21:47 +010029
30 if (!_PyArg_NoStackKeywords("fromkeys", kwnames)) {
31 goto exit;
32 }
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030033 return_value = dict_fromkeys_impl(type, iterable, value);
34
35exit:
36 return return_value;
37}
38
39PyDoc_STRVAR(dict___contains____doc__,
40"__contains__($self, key, /)\n"
41"--\n"
42"\n"
43"True if D has a key k, else False.");
44
45#define DICT___CONTAINS___METHODDEF \
46 {"__contains__", (PyCFunction)dict___contains__, METH_O|METH_COEXIST, dict___contains____doc__},
Victor Stinner0c4a8282017-01-17 02:21:47 +010047/*[clinic end generated code: output=69f3d767ed44e8ec input=a9049054013a1b77]*/