void initMethodObject(void) { PyObject *m, *d; PURE_MIXIN_CLASS(Method, "Base class for objects that want to be treated as methods\n" "\n" "The method class provides a method, __of__, that\n" "binds an object to an instance. If a method is a subobject\n" "of an extension-class instance, the the method will be bound\n" "to the instance and when the resulting object is called, it\n" "will call the method and pass the instance in addition to\n" "other arguments. It is the responsibility of Method objects\n" "to implement (or inherit) a __call__ method.\n", Method_methods); /* Create the module and add the functions */ m = Py_InitModule4("MethodObject", methods, "Method-object mix-in class module\n\n" "$Id: MethodObject.c,v 1.8 2002/06/10 22:48:46 jeremy Exp $\n", (PyObject*)NULL,PYTHON_API_VERSION); d = PyModule_GetDict(m); PyExtensionClass_Export(d,"Method",MethodType); /* Check for errors */ CHECK_FOR_ERRORS("can't initialize module MethodObject"); }
void init_Missing(void) { PyObject *m, *d; if(! ((vname=PyString_FromString("V")) && (Missing_dot_Value=PyString_FromString("Missing.Value")) && (empty_string=PyString_FromString("")) )) return; /* Create the module and add the functions */ m = Py_InitModule4("_Missing", Module_Level__methods, Missing_module_documentation, (PyObject*)NULL,PYTHON_API_VERSION); /* Add some symbolic constants to the module */ d = PyModule_GetDict(m); PyExtensionClass_Export(d,"Missing",MissingType); theValue = PyObject_CallObject((PyObject*)&MissingType, NULL); notMissing = PyObject_CallObject((PyObject*)&MissingType, NULL); reduce=PyCFunction_New(reduce_ml, theValue); PyDict_SetItemString(d, "Value", theValue); PyDict_SetItemString(d, "V", theValue); PyDict_SetItemString(d, "MV", theValue); PyDict_SetItemString(d, "notMissing", notMissing); }
void initTimeStamp(void) { PyObject *m, *d, *s; if (TimeStamp_init_gmoff() < 0) return; if (! ExtensionClassImported) return; /* Create the module and add the functions */ m = Py_InitModule4("TimeStamp", Module_Level__methods, TimeStamp_module_documentation, (PyObject*)NULL,PYTHON_API_VERSION); /* Add some symbolic constants to the module */ d = PyModule_GetDict(m); #ifndef USE_EXTENSION_CLASS TimeStampType.ob_type=&PyType_Type; #else PyExtensionClass_Export(d, "TimeStamp", TimeStampType); #endif PyDict_SetItemString(d,"TimeStampType", OBJECT(&TimeStampType)); s = PyString_FromString("TimeStamp.error"); PyDict_SetItemString(d, "error", s); Py_XDECREF(s); /* Check for errors */ if (PyErr_Occurred()) Py_FatalError("can't initialize module TimeStamp"); }
void INITMODULE (void) { PyObject *m, *d, *c; UNLESS (sort_str=PyString_FromString("sort")) return; UNLESS (reverse_str=PyString_FromString("reverse")) return; UNLESS (items_str=PyString_FromString("items")) return; UNLESS (__setstate___str=PyString_FromString("__setstate__")) return; UNLESS (PyExtensionClassCAPI=PyCObject_Import("ExtensionClass","CAPI")) return; #ifdef PERSISTENT if ((cPersistenceCAPI=PyCObject_Import("cPersistence","CAPI"))) { BucketType.methods.link=cPersistenceCAPI->methods; BucketType.tp_getattro=cPersistenceCAPI->getattro; BucketType.tp_setattro=cPersistenceCAPI->setattro; SetType.methods.link=cPersistenceCAPI->methods; SetType.tp_getattro=cPersistenceCAPI->getattro; SetType.tp_setattro=cPersistenceCAPI->setattro; BTreeType.methods.link=cPersistenceCAPI->methods; BTreeType.tp_getattro=cPersistenceCAPI->getattro; BTreeType.tp_setattro=cPersistenceCAPI->setattro; TreeSetType.methods.link=cPersistenceCAPI->methods; TreeSetType.tp_getattro=cPersistenceCAPI->getattro; TreeSetType.tp_setattro=cPersistenceCAPI->setattro; } else return; /* Grab the ConflictError class */ m = PyImport_ImportModule("ZODB.POSException"); if (m != NULL) { c = PyObject_GetAttrString(m, "BTreesConflictError"); if (c != NULL) ConflictError = c; Py_DECREF(m); } if (ConflictError == NULL) { Py_INCREF(PyExc_ValueError); ConflictError=PyExc_ValueError; } #else BTreeType.tp_getattro=PyExtensionClassCAPI->getattro; BucketType.tp_getattro=PyExtensionClassCAPI->getattro; SetType.tp_getattro=PyExtensionClassCAPI->getattro; TreeSetType.tp_getattro=PyExtensionClassCAPI->getattro; #endif BTreeItemsType.ob_type=&PyType_Type; #ifdef INTSET_H UNLESS(d = PyImport_ImportModule("intSet")) return; UNLESS(intSetType = PyObject_GetAttrString (d, "intSet")) return; Py_DECREF (d); #endif /* Create the module and add the functions */ m = Py_InitModule4("_" MOD_NAME_PREFIX "BTree", module_methods, BTree_module_documentation, (PyObject*)NULL,PYTHON_API_VERSION); /* Add some symbolic constants to the module */ d = PyModule_GetDict(m); PyExtensionClass_Export(d,MOD_NAME_PREFIX "Bucket", BucketType); PyExtensionClass_Export(d,MOD_NAME_PREFIX "BTree", BTreeType); PyExtensionClass_Export(d,MOD_NAME_PREFIX "Set", SetType); PyExtensionClass_Export(d,MOD_NAME_PREFIX "TreeSet", TreeSetType); }