1/*[clinic input]
2preserve
3[clinic start generated code]*/
4
5PyDoc_STRVAR(module___init____doc__,
6"module(name, doc=None)\n"
7"--\n"
8"\n"
9"Create a module object.\n"
10"\n"
11"The name must be a string; the optional doc argument can have any type.");
12
13static int
14module___init___impl(PyModuleObject *self, PyObject *name, PyObject *doc);
15
16static int
17module___init__(PyObject *self, PyObject *args, PyObject *kwargs)
18{
19 int return_value = -1;
20 static const char * const _keywords[] = {"name", "doc", NULL};
21 static _PyArg_Parser _parser = {NULL, _keywords, "module", 0};
22 PyObject *argsbuf[2];
23 PyObject * const *fastargs;
24 Py_ssize_t nargs = PyTuple_GET_SIZE(args);
25 Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
26 PyObject *name;
27 PyObject *doc = Py_None;
28
29 fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
30 if (!fastargs) {
31 goto exit;
32 }
33 if (!PyUnicode_Check(fastargs[0])) {
34 _PyArg_BadArgument("module", "argument 'name'", "str", fastargs[0]);
35 goto exit;
36 }
37 if (PyUnicode_READY(fastargs[0]) == -1) {
38 goto exit;
39 }
40 name = fastargs[0];
41 if (!noptargs) {
42 goto skip_optional_pos;
43 }
44 doc = fastargs[1];
45skip_optional_pos:
46 return_value = module___init___impl((PyModuleObject *)self, name, doc);
47
48exit:
49 return return_value;
50}
51/*[clinic end generated code: output=680276bc3a496d7a input=a9049054013a1b77]*/
52