1 /*[clinic input]
2 preserve
3 [clinic start generated code]*/
4 
5 PyDoc_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 
13 static int
14 module___init___impl(PyModuleObject *self, PyObject *name, PyObject *doc);
15 
16 static int
module___init__(PyObject * self,PyObject * args,PyObject * kwargs)17 module___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];
45 skip_optional_pos:
46     return_value = module___init___impl((PyModuleObject *)self, name, doc);
47 
48 exit:
49     return return_value;
50 }
51 /*[clinic end generated code: output=680276bc3a496d7a input=a9049054013a1b77]*/
52