1 /* This extension module exposes some types that are only available at the
2 * C level. It should not be used directly, but instead through the Python
3 * level types modules, which imports this.
7 #include "structmember.h"
15 static PyMemberDef helper_members
[] = {
16 { "member", T_INT
, offsetof(Helper
, member
), READONLY
,
17 PyDoc_STR("A member descriptor")
23 helper_getter(Helper
*self
, void *unused
)
28 static PyGetSetDef helper_getset
[] = {
29 { "getter", (getter
)helper_getter
, NULL
,
30 PyDoc_STR("A getset descriptor"),
35 static PyTypeObject HelperType
= {
36 PyVarObject_HEAD_INIT(NULL
, 0)
37 "_types.Helper", /* tp_name */
38 sizeof(Helper
), /* tp_basicsize */
47 0, /* tp_as_sequence */
48 0, /* tp_as_mapping */
55 Py_TPFLAGS_DEFAULT
, /* tp_flags */
59 0, /* tp_richcompare */
60 0, /* tp_weaklistoffset */
64 helper_members
, /* tp_members */
65 helper_getset
, /* tp_getset */
70 0, /* tp_dictoffset */
82 m
= Py_InitModule3("_types", NULL
, "A types module helper");
86 if (PyType_Ready(&HelperType
) < 0)
89 Py_INCREF(&HelperType
);
90 PyModule_AddObject(m
, "Helper", (PyObject
*)&HelperType
);