54 lines · 1.7 KB · C
RawDownload
#include <Python.h> typedef struct {    PyObject_HEAD    /* Type-specific fields go here. */} noddy_NoddyObject; static PyTypeObject noddy_NoddyType = {    PyObject_HEAD_INIT(NULL)    0,                         /*ob_size*/    "noddy.Noddy",             /*tp_name*/    sizeof(noddy_NoddyObject), /*tp_basicsize*/    0,                         /*tp_itemsize*/    0,                         /*tp_dealloc*/    0,                         /*tp_print*/    0,                         /*tp_getattr*/    0,                         /*tp_setattr*/    0,                         /*tp_compare*/    0,                         /*tp_repr*/    0,                         /*tp_as_number*/    0,                         /*tp_as_sequence*/    0,                         /*tp_as_mapping*/    0,                         /*tp_hash */    0,                         /*tp_call*/    0,                         /*tp_str*/    0,                         /*tp_getattro*/    0,                         /*tp_setattro*/    0,                         /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT,        /*tp_flags*/    "Noddy objects",           /* tp_doc */}; static PyMethodDef noddy_methods[] = {    {NULL}  /* Sentinel */}; #ifndef PyMODINIT_FUNC	/* declarations for DLL import/export */#define PyMODINIT_FUNC void#endifPyMODINIT_FUNCinitnoddy(void) {    PyObject* m;     noddy_NoddyType.tp_new = PyType_GenericNew;    if (PyType_Ready(&noddy_NoddyType) < 0)        return;     m = Py_InitModule3("noddy", noddy_methods,                       "Example module that creates an extension type.");     Py_INCREF(&noddy_NoddyType);    PyModule_AddObject(m, "Noddy", (PyObject *)&noddy_NoddyType);}