extern void *newtype(PyTypeObject *, const PyTypeObject *, const char *);
extern PyObject *mkexc(PyObject *, PyObject *, const char *, PyMethodDef *);
+extern void typeready(PyTypeObject *);
extern PyTypeObject *inittype(PyTypeObject *);
extern void addmethods(const PyMethodDef *);
extern PyMethodDef *donemethods(void);
#include "catacomb-python.h"
+/*----- External values ---------------------------------------------------*/
+
+static PyObject *modname = 0;
+
/*----- Conversions -------------------------------------------------------*/
PyObject *getulong(unsigned long w)
return (ty);
}
+void typeready(PyTypeObject *ty)
+{
+ PyType_Ready(ty);
+ PyDict_SetItemString(ty->tp_dict, "__module__", modname);
+}
+
PyTypeObject *inittype(PyTypeObject *tyskel)
{
- static PyObject *modname = 0;
PyTypeObject *ty = newtype(&PyType_Type, tyskel, 0);
- if (!modname) modname = PyString_FromString("catacomb");
ty->tp_flags |= Py_TPFLAGS_HEAPTYPE;
- PyType_Ready(ty);
- PyDict_SetItemString(ty->tp_dict, "__module__", modname);
+ typeready(ty);
return (ty);
}
void util_pyinit(void)
{
+ modname = PyString_FromString("catacomb");
INITTYPE(itemiter, root);
INITTYPE(valiter, root);
}