/* Descriptors */ typedef PyObject *(*getter)(PyObject *, void *); typedef int (*setter)(PyObject *, PyObject *, void *); typedef struct PyGetSetDef { char *name; getter get; setter set; char *doc; void *closure; } PyGetSetDef; typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args, void *wrapped); struct wrapperbase { char *name; wrapperfunc wrapper; char *doc; }; extern DL_IMPORT(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *); extern DL_IMPORT(PyObject *) PyDescr_NewMember(PyTypeObject *, struct PyMemberDef *); extern DL_IMPORT(PyObject *) PyDescr_NewGetSet(PyTypeObject *, struct PyGetSetDef *); extern DL_IMPORT(PyObject *) PyDescr_NewWrapper(PyTypeObject *, struct wrapperbase *, void *); extern DL_IMPORT(int) PyDescr_IsData(PyObject *); extern DL_IMPORT(PyObject *) PyDictProxy_New(PyObject *); extern DL_IMPORT(PyObject *) PyWrapper_New(PyObject *, PyObject *); extern DL_IMPORT(PyTypeObject) PyProperty_Type;