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