CoolFace
Apppublic

vidya7732/AI_Doctor_LLM_GenModel

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
funcobject.h99 linesDownload Raw Back to include
1 2/* Function object interface */3#ifndef Py_LIMITED_API4#ifndef Py_FUNCOBJECT_H5#define Py_FUNCOBJECT_H6#ifdef __cplusplus7extern "C" {8#endif9 10/* Function objects and code objects should not be confused with each other:11 *12 * Function objects are created by the execution of the 'def' statement.13 * They reference a code object in their __code__ attribute, which is a14 * purely syntactic object, i.e. nothing more than a compiled version of some15 * source code lines.  There is one code object per source code "fragment",16 * but each code object can be referenced by zero or many function objects17 * depending only on how many times the 'def' statement in the source was18 * executed so far.19 */20 21typedef struct {22    PyObject_HEAD23    PyObject *func_code;        /* A code object, the __code__ attribute */24    PyObject *func_globals;     /* A dictionary (other mappings won't do) */25    PyObject *func_defaults;    /* NULL or a tuple */26    PyObject *func_kwdefaults;  /* NULL or a dict */27    PyObject *func_closure;     /* NULL or a tuple of cell objects */28    PyObject *func_doc;         /* The __doc__ attribute, can be anything */29    PyObject *func_name;        /* The __name__ attribute, a string object */30    PyObject *func_dict;        /* The __dict__ attribute, a dict or NULL */31    PyObject *func_weakreflist; /* List of weak references */32    PyObject *func_module;      /* The __module__ attribute, can be anything */33    PyObject *func_annotations; /* Annotations, a dict or NULL */34    PyObject *func_qualname;    /* The qualified name */35    vectorcallfunc vectorcall;36 37    /* Invariant:38     *     func_closure contains the bindings for func_code->co_freevars, so39     *     PyTuple_Size(func_closure) == PyCode_GetNumFree(func_code)40     *     (func_closure may be NULL if PyCode_GetNumFree(func_code) == 0).41     */42} PyFunctionObject;43 44PyAPI_DATA(PyTypeObject) PyFunction_Type;45 46#define PyFunction_Check(op) Py_IS_TYPE(op, &PyFunction_Type)47 48PyAPI_FUNC(PyObject *) PyFunction_New(PyObject *, PyObject *);49PyAPI_FUNC(PyObject *) PyFunction_NewWithQualName(PyObject *, PyObject *, PyObject *);50PyAPI_FUNC(PyObject *) PyFunction_GetCode(PyObject *);51PyAPI_FUNC(PyObject *) PyFunction_GetGlobals(PyObject *);52PyAPI_FUNC(PyObject *) PyFunction_GetModule(PyObject *);53PyAPI_FUNC(PyObject *) PyFunction_GetDefaults(PyObject *);54PyAPI_FUNC(int) PyFunction_SetDefaults(PyObject *, PyObject *);55PyAPI_FUNC(PyObject *) PyFunction_GetKwDefaults(PyObject *);56PyAPI_FUNC(int) PyFunction_SetKwDefaults(PyObject *, PyObject *);57PyAPI_FUNC(PyObject *) PyFunction_GetClosure(PyObject *);58PyAPI_FUNC(int) PyFunction_SetClosure(PyObject *, PyObject *);59PyAPI_FUNC(PyObject *) PyFunction_GetAnnotations(PyObject *);60PyAPI_FUNC(int) PyFunction_SetAnnotations(PyObject *, PyObject *);61 62#ifndef Py_LIMITED_API63PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall(64    PyObject *func,65    PyObject *const *stack,66    size_t nargsf,67    PyObject *kwnames);68#endif69 70/* Macros for direct access to these values. Type checks are *not*71   done, so use with care. */72#define PyFunction_GET_CODE(func) \73        (((PyFunctionObject *)func) -> func_code)74#define PyFunction_GET_GLOBALS(func) \75        (((PyFunctionObject *)func) -> func_globals)76#define PyFunction_GET_MODULE(func) \77        (((PyFunctionObject *)func) -> func_module)78#define PyFunction_GET_DEFAULTS(func) \79        (((PyFunctionObject *)func) -> func_defaults)80#define PyFunction_GET_KW_DEFAULTS(func) \81        (((PyFunctionObject *)func) -> func_kwdefaults)82#define PyFunction_GET_CLOSURE(func) \83        (((PyFunctionObject *)func) -> func_closure)84#define PyFunction_GET_ANNOTATIONS(func) \85        (((PyFunctionObject *)func) -> func_annotations)86 87/* The classmethod and staticmethod types lives here, too */88PyAPI_DATA(PyTypeObject) PyClassMethod_Type;89PyAPI_DATA(PyTypeObject) PyStaticMethod_Type;90 91PyAPI_FUNC(PyObject *) PyClassMethod_New(PyObject *);92PyAPI_FUNC(PyObject *) PyStaticMethod_New(PyObject *);93 94#ifdef __cplusplus95}96#endif97#endif /* !Py_FUNCOBJECT_H */98#endif /* Py_LIMITED_API */99