File indexing completed on 2025-11-19 09:50:41
0001
0002
0003 #ifndef Py_LIMITED_API
0004 #ifndef Py_GENOBJECT_H
0005 #define Py_GENOBJECT_H
0006 #ifdef __cplusplus
0007 extern "C" {
0008 #endif
0009
0010
0011
0012
0013
0014 #define _PyGenObject_HEAD(prefix) \
0015 PyObject_HEAD \
0016 \
0017 PyObject *prefix##_weakreflist; \
0018 \
0019 PyObject *prefix##_name; \
0020 \
0021 PyObject *prefix##_qualname; \
0022 _PyErr_StackItem prefix##_exc_state; \
0023 PyObject *prefix##_origin_or_finalizer; \
0024 char prefix##_hooks_inited; \
0025 char prefix##_closed; \
0026 char prefix##_running_async; \
0027 \
0028 int8_t prefix##_frame_state; \
0029 PyObject *prefix##_iframe[1]; \
0030
0031 typedef struct {
0032
0033 _PyGenObject_HEAD(gi)
0034 } PyGenObject;
0035
0036 PyAPI_DATA(PyTypeObject) PyGen_Type;
0037
0038 #define PyGen_Check(op) PyObject_TypeCheck((op), &PyGen_Type)
0039 #define PyGen_CheckExact(op) Py_IS_TYPE((op), &PyGen_Type)
0040
0041 PyAPI_FUNC(PyObject *) PyGen_New(PyFrameObject *);
0042 PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *,
0043 PyObject *name, PyObject *qualname);
0044 PyAPI_FUNC(PyCodeObject *) PyGen_GetCode(PyGenObject *gen);
0045
0046
0047
0048
0049 typedef struct {
0050 _PyGenObject_HEAD(cr)
0051 } PyCoroObject;
0052
0053 PyAPI_DATA(PyTypeObject) PyCoro_Type;
0054
0055 #define PyCoro_CheckExact(op) Py_IS_TYPE((op), &PyCoro_Type)
0056 PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *,
0057 PyObject *name, PyObject *qualname);
0058
0059
0060
0061
0062 typedef struct {
0063 _PyGenObject_HEAD(ag)
0064 } PyAsyncGenObject;
0065
0066 PyAPI_DATA(PyTypeObject) PyAsyncGen_Type;
0067 PyAPI_DATA(PyTypeObject) _PyAsyncGenASend_Type;
0068
0069 PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *,
0070 PyObject *name, PyObject *qualname);
0071
0072 #define PyAsyncGen_CheckExact(op) Py_IS_TYPE((op), &PyAsyncGen_Type)
0073
0074 #define PyAsyncGenASend_CheckExact(op) Py_IS_TYPE((op), &_PyAsyncGenASend_Type)
0075
0076
0077 #undef _PyGenObject_HEAD
0078
0079 #ifdef __cplusplus
0080 }
0081 #endif
0082 #endif
0083 #endif