1 2/* Generator object interface */ 3 4#ifndef Py_GENOBJECT_H 5#define Py_GENOBJECT_H 6#ifdef __cplusplus 7extern "C" { 8#endif 9 10struct _frame; /* Avoid including frameobject.h */ 11 12typedef struct { 13 PyObject_HEAD 14 /* The gi_ prefix is intended to remind of generator-iterator. */ 15 16 /* Note: gi_frame can be NULL if the generator is "finished" */ 17 struct _frame *gi_frame; 18 19 /* True if generator is being executed. */ 20 int gi_running; 21 22 /* The code object backing the generator */ 23 PyObject *gi_code; 24 25 /* List of weak reference. */ 26 PyObject *gi_weakreflist; 27} PyGenObject; 28 29PyAPI_DATA(PyTypeObject) PyGen_Type; 30 31#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type) 32#define PyGen_CheckExact(op) (Py_TYPE(op) == &PyGen_Type) 33 34PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *); 35PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *); 36 37#ifdef __cplusplus 38} 39#endif 40#endif /* !Py_GENOBJECT_H */ 41