# propagate "explictness" to python :) cl.constructors(lambda c: c.explicit == True, allow_empty=True).allow_implicit_conversion = False # expose member variables of type `boost::optional<vector<...>>` uns = mb.namespace('::marocco::placement::algorithms') namespaces.extend_array_operators(uns) for cl in uns.classes(allow_empty=True): cl.include() for variable in cl.variables(allow_empty=True): classes.add_optional_vector_wrapper_for(mb, variable) classes.add_pickle_suite(cl) cl.constructors(lambda c: c.explicit == True, allow_empty=True).allow_implicit_conversion = False # Do not expose typedefs (prevent AttributeErrors on import) for td in mb.typedefs(allow_empty=True): td.exclude() # expose only public interfaces and protected interfaces, # protected variables cannot be exposed :( namespaces.exclude_by_access_type( mb, ['variables', 'calldefs', 'classes', 'typedefs'], 'private') mb.namespace('::boost::serialization').exclude() containers.extend_std_containers(mb) wrap.set_number_of_files(0) wrap.finish()
#!/usr/bin/env python from pywrap.wrapper import Wrapper from pywrap import containers, namespaces, matchers wrap = Wrapper() wrap.set_number_of_files(0) containers.extend_std_containers(wrap.mb) wrap.mb.class_('_Bit_reference').include() wrap.finish()