--- /dev/null
+\r
+/* Generator object interface */\r
+\r
+#ifndef Py_GENOBJECT_H\r
+#define Py_GENOBJECT_H\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+struct _frame; /* Avoid including frameobject.h */\r
+\r
+typedef struct {\r
+ PyObject_HEAD\r
+ /* The gi_ prefix is intended to remind of generator-iterator. */\r
+\r
+ /* Note: gi_frame can be NULL if the generator is "finished" */\r
+ struct _frame *gi_frame;\r
+\r
+ /* True if generator is being executed. */\r
+ int gi_running;\r
+ \r
+ /* The code object backing the generator */\r
+ PyObject *gi_code;\r
+\r
+ /* List of weak reference. */\r
+ PyObject *gi_weakreflist;\r
+} PyGenObject;\r
+\r
+PyAPI_DATA(PyTypeObject) PyGen_Type;\r
+\r
+#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type)\r
+#define PyGen_CheckExact(op) (Py_TYPE(op) == &PyGen_Type)\r
+\r
+PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *);\r
+PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+#endif /* !Py_GENOBJECT_H */\r