1 from cpython.ref cimport PyObject
3 cdef extern from "Python.h":
5 ############################################################################
6 # 7.5.3 Function Objects
7 ############################################################################
8 # There are a few functions specific to Python functions.
12 # The C structure used for functions.
14 # PyTypeObject PyFunction_Type
16 # This is an instance of PyTypeObject and represents the Python
17 # function type. It is exposed to Python programmers as
20 bint PyFunction_Check(object o)
21 # Return true if o is a function object (has type
22 # PyFunction_Type). The parameter must not be NULL.
24 object PyFunction_New(object code, object globals)
25 # Return value: New reference.
26 # Return a new function object associated with the code object
27 # code. globals must be a dictionary with the global variables
28 # accessible to the function.
29 # The function's docstring, name and __module__ are retrieved from
30 # the code object, the argument defaults and closure are set to
33 PyObject* PyFunction_GetCode(object op) except? NULL
34 # Return value: Borrowed reference.
35 # Return the code object associated with the function object op.
37 PyObject* PyFunction_GetGlobals(object op) except? NULL
38 # Return value: Borrowed reference.
39 # Return the globals dictionary associated with the function object op.
41 PyObject* PyFunction_GetModule(object op) except? NULL
42 # Return value: Borrowed reference.
43 # Return the __module__ attribute of the function object op. This
44 # is normally a string containing the module name, but can be set
45 # to any other object by Python code.
47 PyObject* PyFunction_GetDefaults(object op) except? NULL
48 # Return value: Borrowed reference.
49 # Return the argument default values of the function object
50 # op. This can be a tuple of arguments or NULL.
52 int PyFunction_SetDefaults(object op, object defaults) except -1
53 # Set the argument default values for the function object
54 # op. defaults must be Py_None or a tuple.
55 # Raises SystemError and returns -1 on failure.
57 PyObject* PyFunction_GetClosure(object op) except? NULL
58 # Return value: Borrowed reference.
59 # Return the closure associated with the function object op. This
60 # can be NULL or a tuple of cell objects.
62 int PyFunction_SetClosure(object op, object closure) except -1
63 # Set the closure associated with the function object op. closure
64 # must be Py_None or a tuple of cell objects.
65 # Raises SystemError and returns -1 on failure.