annotate DEPENDENCIES/mingw32/Python27/include/descrobject.h @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2a2c65a20a8b
children
rev   line source
Chris@87 1 /* Descriptors */
Chris@87 2 #ifndef Py_DESCROBJECT_H
Chris@87 3 #define Py_DESCROBJECT_H
Chris@87 4 #ifdef __cplusplus
Chris@87 5 extern "C" {
Chris@87 6 #endif
Chris@87 7
Chris@87 8 typedef PyObject *(*getter)(PyObject *, void *);
Chris@87 9 typedef int (*setter)(PyObject *, PyObject *, void *);
Chris@87 10
Chris@87 11 typedef struct PyGetSetDef {
Chris@87 12 char *name;
Chris@87 13 getter get;
Chris@87 14 setter set;
Chris@87 15 char *doc;
Chris@87 16 void *closure;
Chris@87 17 } PyGetSetDef;
Chris@87 18
Chris@87 19 typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args,
Chris@87 20 void *wrapped);
Chris@87 21
Chris@87 22 typedef PyObject *(*wrapperfunc_kwds)(PyObject *self, PyObject *args,
Chris@87 23 void *wrapped, PyObject *kwds);
Chris@87 24
Chris@87 25 struct wrapperbase {
Chris@87 26 char *name;
Chris@87 27 int offset;
Chris@87 28 void *function;
Chris@87 29 wrapperfunc wrapper;
Chris@87 30 char *doc;
Chris@87 31 int flags;
Chris@87 32 PyObject *name_strobj;
Chris@87 33 };
Chris@87 34
Chris@87 35 /* Flags for above struct */
Chris@87 36 #define PyWrapperFlag_KEYWORDS 1 /* wrapper function takes keyword args */
Chris@87 37
Chris@87 38 /* Various kinds of descriptor objects */
Chris@87 39
Chris@87 40 #define PyDescr_COMMON \
Chris@87 41 PyObject_HEAD \
Chris@87 42 PyTypeObject *d_type; \
Chris@87 43 PyObject *d_name
Chris@87 44
Chris@87 45 typedef struct {
Chris@87 46 PyDescr_COMMON;
Chris@87 47 } PyDescrObject;
Chris@87 48
Chris@87 49 typedef struct {
Chris@87 50 PyDescr_COMMON;
Chris@87 51 PyMethodDef *d_method;
Chris@87 52 } PyMethodDescrObject;
Chris@87 53
Chris@87 54 typedef struct {
Chris@87 55 PyDescr_COMMON;
Chris@87 56 struct PyMemberDef *d_member;
Chris@87 57 } PyMemberDescrObject;
Chris@87 58
Chris@87 59 typedef struct {
Chris@87 60 PyDescr_COMMON;
Chris@87 61 PyGetSetDef *d_getset;
Chris@87 62 } PyGetSetDescrObject;
Chris@87 63
Chris@87 64 typedef struct {
Chris@87 65 PyDescr_COMMON;
Chris@87 66 struct wrapperbase *d_base;
Chris@87 67 void *d_wrapped; /* This can be any function pointer */
Chris@87 68 } PyWrapperDescrObject;
Chris@87 69
Chris@87 70 PyAPI_DATA(PyTypeObject) PyWrapperDescr_Type;
Chris@87 71 PyAPI_DATA(PyTypeObject) PyDictProxy_Type;
Chris@87 72 PyAPI_DATA(PyTypeObject) PyGetSetDescr_Type;
Chris@87 73 PyAPI_DATA(PyTypeObject) PyMemberDescr_Type;
Chris@87 74
Chris@87 75 PyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *);
Chris@87 76 PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *);
Chris@87 77 PyAPI_FUNC(PyObject *) PyDescr_NewMember(PyTypeObject *,
Chris@87 78 struct PyMemberDef *);
Chris@87 79 PyAPI_FUNC(PyObject *) PyDescr_NewGetSet(PyTypeObject *,
Chris@87 80 struct PyGetSetDef *);
Chris@87 81 PyAPI_FUNC(PyObject *) PyDescr_NewWrapper(PyTypeObject *,
Chris@87 82 struct wrapperbase *, void *);
Chris@87 83 #define PyDescr_IsData(d) (Py_TYPE(d)->tp_descr_set != NULL)
Chris@87 84
Chris@87 85 PyAPI_FUNC(PyObject *) PyDictProxy_New(PyObject *);
Chris@87 86 PyAPI_FUNC(PyObject *) PyWrapper_New(PyObject *, PyObject *);
Chris@87 87
Chris@87 88
Chris@87 89 PyAPI_DATA(PyTypeObject) PyProperty_Type;
Chris@87 90 #ifdef __cplusplus
Chris@87 91 }
Chris@87 92 #endif
Chris@87 93 #endif /* !Py_DESCROBJECT_H */
Chris@87 94