diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2017-03-19 06:51:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-19 06:51:07 (GMT) |
commit | 18b250f844bf8b2d1a81c2d2dcc74e850364fe35 (patch) | |
tree | 117c9240b5b87067a07cb43bc9260ed26c3148bb /Objects/clinic/funcobject.c.h | |
parent | 0b5615926a573c19c887a701a2f7047f4fd06de6 (diff) | |
download | cpython-18b250f844bf8b2d1a81c2d2dcc74e850364fe35.zip cpython-18b250f844bf8b2d1a81c2d2dcc74e850364fe35.tar.gz cpython-18b250f844bf8b2d1a81c2d2dcc74e850364fe35.tar.bz2 |
bpo-29793: Convert some builtin types constructors to Argument Clinic. (#615)
Diffstat (limited to 'Objects/clinic/funcobject.c.h')
-rw-r--r-- | Objects/clinic/funcobject.c.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Objects/clinic/funcobject.c.h b/Objects/clinic/funcobject.c.h new file mode 100644 index 0000000..4c54483 --- /dev/null +++ b/Objects/clinic/funcobject.c.h @@ -0,0 +1,47 @@ +/*[clinic input] +preserve +[clinic start generated code]*/ + +PyDoc_STRVAR(func_new__doc__, +"function(code, globals, name=None, argdefs=None, closure=None)\n" +"--\n" +"\n" +"Create a function object.\n" +"\n" +" code\n" +" a code object\n" +" globals\n" +" the globals dictionary\n" +" name\n" +" a string that overrides the name from the code object\n" +" argdefs\n" +" a tuple that specifies the default argument values\n" +" closure\n" +" a tuple that supplies the bindings for free variables"); + +static PyObject * +func_new_impl(PyTypeObject *type, PyCodeObject *code, PyObject *globals, + PyObject *name, PyObject *defaults, PyObject *closure); + +static PyObject * +func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) +{ + PyObject *return_value = NULL; + static const char * const _keywords[] = {"code", "globals", "name", "argdefs", "closure", NULL}; + static _PyArg_Parser _parser = {"O!O!|OOO:function", _keywords, 0}; + PyCodeObject *code; + PyObject *globals; + PyObject *name = Py_None; + PyObject *defaults = Py_None; + PyObject *closure = Py_None; + + if (!_PyArg_ParseTupleAndKeywordsFast(args, kwargs, &_parser, + &PyCode_Type, &code, &PyDict_Type, &globals, &name, &defaults, &closure)) { + goto exit; + } + return_value = func_new_impl(type, code, globals, name, defaults, closure); + +exit: + return return_value; +} +/*[clinic end generated code: output=a6ab29e4dd33010a input=a9049054013a1b77]*/ |