cython
1from .object cimport PyObject, PyTypeObject
2
3cdef extern from "Python.h":
4ctypedef object (*wrapperfunc)(self, args, void* wrapped)
5ctypedef object (*wrapperfunc_kwds)(self, args, void* wrapped, kwds)
6
7struct wrapperbase:
8char* name
9int offset
10void* function
11wrapperfunc wrapper
12char* doc
13int flags
14PyObject* name_strobj
15
16int PyWrapperFlag_KEYWORDS
17
18ctypedef class __builtin__.wrapper_descriptor [object PyWrapperDescrObject]:
19cdef type d_type
20cdef d_name
21cdef wrapperbase* d_base
22cdef void* d_wrapped
23
24object PyDescr_NewWrapper(PyTypeObject* cls, wrapperbase* wrapper, void* wrapped)
25
26int PyDescr_IsData(descr)
27