From 2ecdf90ac6b93dbc3fc665873648c1fb9cdc01ad Mon Sep 17 00:00:00 2001 From: Andre Anjos <andre.dos.anjos@gmail.com> Date: Tue, 5 Nov 2013 11:27:48 +0100 Subject: [PATCH] First importable version of module --- setup.py | 4 ++-- xbob/io/__init__.py | 2 ++ xbob/io/main.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 xbob/io/main.cpp diff --git a/setup.py b/setup.py index bfdcea0..69d357a 100644 --- a/setup.py +++ b/setup.py @@ -68,7 +68,7 @@ include_dirs = [package_dir] # Define package version version = '2.0.0a0' define_macros += [ - ("XBOB_CORE_VERSION", version), + ("XBOB_IO_VERSION", version), ] setup( @@ -98,7 +98,7 @@ setup( ext_modules = [ Extension("xbob.io._library", [ - "xbob/io/file.cpp", + "xbob/io/main.cpp", ], define_macros=define_macros, include_dirs=include_dirs + bob_pkg.include_directories(), diff --git a/xbob/io/__init__.py b/xbob/io/__init__.py index 5841825..b7e7770 100644 --- a/xbob/io/__init__.py +++ b/xbob/io/__init__.py @@ -1,3 +1,5 @@ +from ._library import __version__, __api_version__ + def get_include(): """Returns the directory containing the C/C++ API include directives""" diff --git a/xbob/io/main.cpp b/xbob/io/main.cpp new file mode 100644 index 0000000..7526754 --- /dev/null +++ b/xbob/io/main.cpp @@ -0,0 +1,44 @@ +/** + * @author Andre Anjos <andre.anjos@idiap.ch> + * @date Fri 25 Oct 16:54:55 2013 + * + * @brief Bindings to bob::io + */ + +#define XBOB_IO_MODULE +#include <xbob.io/config.h> +#include <boost/preprocessor/stringize.hpp> + +#define XBOB_IO_MODULE_PREFIX xbob.io +#define XBOB_IO_MODULE_NAME _library + +#ifdef NO_IMPORT_ARRAY +#undef NO_IMPORT_ARRAY +#endif +#include <blitz.array/capi.h> + +static PyMethodDef module_methods[] = { + {0} /* Sentinel */ +}; + +PyDoc_STRVAR(module_docstr, "bob::io classes and methods"); + +#define ENTRY_FUNCTION_INNER(a) init ## a +#define ENTRY_FUNCTION(a) ENTRY_FUNCTION_INNER(a) + +PyMODINIT_FUNC ENTRY_FUNCTION(XBOB_IO_MODULE_NAME) (void) { + + PyObject* m = Py_InitModule3(BOOST_PP_STRINGIZE(XBOB_IO_MODULE_NAME), + module_methods, module_docstr); + + /* register some constants */ + PyModule_AddIntConstant(m, "__api_version__", XBOB_IO_API_VERSION); + PyModule_AddStringConstant(m, "__version__", BOOST_PP_STRINGIZE(XBOB_IO_VERSION)); + + /* imports the NumPy C-API */ + import_array(); + + /* imports blitz.array C-API */ + import_blitz_array(); + +} -- GitLab