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