summaryrefslogtreecommitdiffstats
path: root/Include/genobject.h
diff options
context:
space:
mode:
Diffstat (limited to 'Include/genobject.h')
-rw-r--r--Include/genobject.h98
1 files changed, 15 insertions, 83 deletions
diff --git a/Include/genobject.h b/Include/genobject.h
index 96f8dcc..135561b 100644
--- a/Include/genobject.h
+++ b/Include/genobject.h
@@ -1,38 +1,29 @@
/* Generator object interface */
-#ifndef Py_LIMITED_API
#ifndef Py_GENOBJECT_H
#define Py_GENOBJECT_H
#ifdef __cplusplus
extern "C" {
#endif
-#include "pystate.h" /* _PyErr_StackItem */
-
struct _frame; /* Avoid including frameobject.h */
-/* _PyGenObject_HEAD defines the initial segment of generator
- and coroutine objects. */
-#define _PyGenObject_HEAD(prefix) \
- PyObject_HEAD \
- /* Note: gi_frame can be NULL if the generator is "finished" */ \
- struct _frame *prefix##_frame; \
- /* True if generator is being executed. */ \
- char prefix##_running; \
- /* The code object backing the generator */ \
- PyObject *prefix##_code; \
- /* List of weak reference. */ \
- PyObject *prefix##_weakreflist; \
- /* Name of the generator. */ \
- PyObject *prefix##_name; \
- /* Qualified name of the generator. */ \
- PyObject *prefix##_qualname; \
- _PyErr_StackItem prefix##_exc_state;
-
typedef struct {
- /* The gi_ prefix is intended to remind of generator-iterator. */
- _PyGenObject_HEAD(gi)
+ PyObject_HEAD
+ /* The gi_ prefix is intended to remind of generator-iterator. */
+
+ /* Note: gi_frame can be NULL if the generator is "finished" */
+ struct _frame *gi_frame;
+
+ /* True if generator is being executed. */
+ int gi_running;
+
+ /* The code object backing the generator */
+ PyObject *gi_code;
+
+ /* List of weak reference. */
+ PyObject *gi_weakreflist;
} PyGenObject;
PyAPI_DATA(PyTypeObject) PyGen_Type;
@@ -41,68 +32,9 @@ PyAPI_DATA(PyTypeObject) PyGen_Type;
#define PyGen_CheckExact(op) (Py_TYPE(op) == &PyGen_Type)
PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *);
-PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(struct _frame *,
- PyObject *name, PyObject *qualname);
-PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *);
-PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **);
-PyAPI_FUNC(PyObject *) _PyGen_Send(PyGenObject *, PyObject *);
-PyObject *_PyGen_yf(PyGenObject *);
-PyAPI_FUNC(void) _PyGen_Finalize(PyObject *self);
-
-#ifndef Py_LIMITED_API
-typedef struct {
- _PyGenObject_HEAD(cr)
- PyObject *cr_origin;
-} PyCoroObject;
-
-PyAPI_DATA(PyTypeObject) PyCoro_Type;
-PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type;
-
-PyAPI_DATA(PyTypeObject) _PyAIterWrapper_Type;
-
-#define PyCoro_CheckExact(op) (Py_TYPE(op) == &PyCoro_Type)
-PyObject *_PyCoro_GetAwaitableIter(PyObject *o);
-PyAPI_FUNC(PyObject *) PyCoro_New(struct _frame *,
- PyObject *name, PyObject *qualname);
-
-/* Asynchronous Generators */
-
-typedef struct {
- _PyGenObject_HEAD(ag)
- PyObject *ag_finalizer;
-
- /* Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks
- were called on the generator, to avoid calling them more
- than once. */
- int ag_hooks_inited;
-
- /* Flag is set to 1 when aclose() is called for the first time, or
- when a StopAsyncIteration exception is raised. */
- int ag_closed;
-
- int ag_running_async;
-} PyAsyncGenObject;
-
-PyAPI_DATA(PyTypeObject) PyAsyncGen_Type;
-PyAPI_DATA(PyTypeObject) _PyAsyncGenASend_Type;
-PyAPI_DATA(PyTypeObject) _PyAsyncGenWrappedValue_Type;
-PyAPI_DATA(PyTypeObject) _PyAsyncGenAThrow_Type;
-
-PyAPI_FUNC(PyObject *) PyAsyncGen_New(struct _frame *,
- PyObject *name, PyObject *qualname);
-
-#define PyAsyncGen_CheckExact(op) (Py_TYPE(op) == &PyAsyncGen_Type)
-
-PyObject *_PyAsyncGenValueWrapperNew(PyObject *);
-
-int PyAsyncGen_ClearFreeLists(void);
-
-#endif
-
-#undef _PyGenObject_HEAD
+PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *);
#ifdef __cplusplus
}
#endif
#endif /* !Py_GENOBJECT_H */
-#endif /* Py_LIMITED_API */