static PyObject* create_module (void) { PyBobApFrameExtractor_Type.tp_new = PyType_GenericNew; if (PyType_Ready(&PyBobApFrameExtractor_Type) < 0) return 0; PyBobApEnergy_Type.tp_base = &PyBobApFrameExtractor_Type; if (PyType_Ready(&PyBobApEnergy_Type) < 0) return 0; PyBobApSpectrogram_Type.tp_base = &PyBobApEnergy_Type; if (PyType_Ready(&PyBobApSpectrogram_Type) < 0) return 0; PyBobApCeps_Type.tp_base = &PyBobApSpectrogram_Type; if (PyType_Ready(&PyBobApCeps_Type) < 0) return 0; # if PY_VERSION_HEX >= 0x03000000 PyObject* m = PyModule_Create(&module_definition); # else PyObject* m = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr); # endif if (!m) return 0; auto m_ = make_safe(m); ///< protects against early returns /* register the types to python */ Py_INCREF(&PyBobApFrameExtractor_Type); if (PyModule_AddObject(m, "FrameExtractor", (PyObject *)&PyBobApFrameExtractor_Type) < 0) return 0; Py_INCREF(&PyBobApEnergy_Type); if (PyModule_AddObject(m, "Energy", (PyObject *)&PyBobApEnergy_Type) < 0) return 0; Py_INCREF(&PyBobApSpectrogram_Type); if (PyModule_AddObject(m, "Spectrogram", (PyObject *)&PyBobApSpectrogram_Type) < 0) return 0; Py_INCREF(&PyBobApCeps_Type); if (PyModule_AddObject(m, "Ceps", (PyObject *)&PyBobApCeps_Type) < 0) return 0; /* imports dependencies */ if (import_bob_blitz() < 0) return 0; if (import_bob_core_logging() < 0) return 0; if (import_bob_sp() < 0) return 0; return Py_BuildValue("O", m); }
static PyObject* create_module (void) { # if PY_VERSION_HEX >= 0x03000000 PyObject* module = PyModule_Create(&module_definition); auto module_ = make_xsafe(module); const char* ret = "O"; # else PyObject* module = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr); const char* ret = "N"; # endif if (!module) return 0; if (PyModule_AddStringConstant(module, "__version__", BOB_EXT_MODULE_VERSION) < 0) return 0; if (!init_BobIpBaseGeomNorm(module)) return 0; if (!init_BobIpBaseFaceEyesNorm(module)) return 0; if (!init_BobIpBaseLBP(module)) return 0; if (!init_BobIpBaseLBPTop(module)) return 0; if (!init_BobIpBaseDCTFeatures(module)) return 0; if (!init_BobIpBaseTanTriggs(module)) return 0; if (!init_BobIpBaseGaussian(module)) return 0; if (!init_BobIpBaseMultiscaleRetinex(module)) return 0; if (!init_BobIpBaseWeightedGaussian(module)) return 0; if (!init_BobIpBaseSelfQuotientImage(module)) return 0; if (!init_BobIpBaseGaussianScaleSpace(module)) return 0; if (!init_BobIpBaseSIFT(module)) return 0; if (!init_BobIpBaseHOG(module)) return 0; if (!init_BobIpBaseGLCM(module)) return 0; if (!init_BobIpBaseWiener(module)) return 0; #if HAVE_VLFEAT if (!init_BobIpBaseVLFEAT(module)) return 0; #endif // HAVE_VLFEAT static void* PyBobIpBase_API[PyBobIpBase_API_pointers]; /* exhaustive list of C APIs */ /************** * Versioning * **************/ PyBobIpBase_API[PyBobIpBase_APIVersion_NUM] = (void *)&PyBobIpBase_APIVersion; /******************************** * Bindings for bob.ip.base.LBP * ********************************/ PyBobIpBase_API[PyBobIpBaseLBP_Type_NUM] = (void *)&PyBobIpBaseLBP_Type; PyBobIpBase_API[PyBobIpBaseLBP_Check_NUM] = (void *)&PyBobIpBaseLBP_Check; PyBobIpBase_API[PyBobIpBaseLBP_Converter_NUM] = (void *)&PyBobIpBaseLBP_Converter; #if PY_VERSION_HEX >= 0x02070000 /* defines the PyCapsule */ PyObject* c_api_object = PyCapsule_New((void *)PyBobIpBase_API, BOB_EXT_MODULE_PREFIX "." BOB_EXT_MODULE_NAME "._C_API", 0); #else PyObject* c_api_object = PyCObject_FromVoidPtr((void *)PyBobIpBase_API, 0); #endif if (!c_api_object) return 0; if (PyModule_AddObject(module, "_C_API", c_api_object) < 0) return 0; /* imports bob.ip.base's C-API dependencies */ if (import_bob_blitz() < 0) return 0; if (import_bob_core_random() < 0) return 0; if (import_bob_core_logging() < 0) return 0; if (import_bob_io_base() < 0) return 0; if (import_bob_sp() < 0) return 0; return Py_BuildValue(ret, module); }