Home | History | Annotate | Download | only in includes
      1 #include <Python.h>
      2 
      3 typedef struct {
      4     PyObject_HEAD
      5     /* Type-specific fields go here. */
      6 } CustomObject;
      7 
      8 static PyTypeObject CustomType = {
      9     PyVarObject_HEAD_INIT(NULL, 0)
     10     .tp_name = "custom.Custom",
     11     .tp_doc = "Custom objects",
     12     .tp_basicsize = sizeof(CustomObject),
     13     .tp_itemsize = 0,
     14     .tp_flags = Py_TPFLAGS_DEFAULT,
     15     .tp_new = PyType_GenericNew,
     16 };
     17 
     18 static PyModuleDef custommodule = {
     19     PyModuleDef_HEAD_INIT,
     20     .m_name = "custom",
     21     .m_doc = "Example module that creates an extension type.",
     22     .m_size = -1,
     23 };
     24 
     25 PyMODINIT_FUNC
     26 PyInit_custom(void)
     27 {
     28     PyObject *m;
     29     if (PyType_Ready(&CustomType) < 0)
     30         return NULL;
     31 
     32     m = PyModule_Create(&custommodule);
     33     if (m == NULL)
     34         return NULL;
     35 
     36     Py_INCREF(&CustomType);
     37     PyModule_AddObject(m, "Custom", (PyObject *) &CustomType);
     38     return m;
     39 }
     40