Most of Python and R scientific packages incorporate compiled scientific libraries to speed up the execution of the code needed for high-performance computing and to reuse legacy libraries.
Several semi-automatic solutions exist to wrap these compiled libraries: SWIG, Cython, Boost.Python. However, the process of wrapping a large C++ library is cumbersome and time consuming, mainly due some high-level constructs that have no equivalent in Python (template, complex iterators, ...).
In this talk, we introduce AutoWIG, a Python package that enables full C++ introspection using LLVM/Clang technologies. Default strategies have been designed to transform any C++ construct into Python, using Boost.Python for instance. Based on the introspection, a set of classes, methods, namespaces are retrieve and Boost.Python code is generated using the Mako template engine.