summaryrefslogtreecommitdiffstats
path: root/Objects/clinic/funcobject.c.h
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2017-03-19 06:51:07 (GMT)
committerGitHub <noreply@github.com>2017-03-19 06:51:07 (GMT)
commit18b250f844bf8b2d1a81c2d2dcc74e850364fe35 (patch)
tree117c9240b5b87067a07cb43bc9260ed26c3148bb /Objects/clinic/funcobject.c.h
parent0b5615926a573c19c887a701a2f7047f4fd06de6 (diff)
downloadcpython-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.h47
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]*/