Skip to content

Commit

Permalink
Update wrappers
Browse files Browse the repository at this point in the history
  • Loading branch information
pfernique committed Feb 13, 2018
1 parent af5ff99 commit 6846dc7
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 43 deletions.
103 changes: 60 additions & 43 deletions src/cpp/AutoWIG.py
Original file line number Diff line number Diff line change
@@ -1,63 +1,80 @@
import autowig
from autowig.asg import TemplateSpecializationProxy
import itertools

def controller(asg, **kwargs):
def controller(asg, library=True, **kwargs):
autowig.controller.plugin = 'default'
asg = autowig.controller(asg, **kwargs)
for function in asg['::statiskit::stl'].functions():
if function.localname in ['generator', 'insert']:
parameter = function.parameters[0].qualified_type.desugared_type
if parameter.is_class:
function.parent = parameter.unqualified_type
for cls in asg['class ::std::vector'].specializations(partial = False):
for method in cls.methods():
if method.localname in ['resize', 'shrink_to_fit', 'operator[]']:
if isinstance(method.boost_python_export, bool):
method.boost_python_export = False
for constructor in cls.constructors():
if not(constructor.nb_parameters == 0 or constructor.nb_parameters == 1 and constructor.parameters[0].qualified_type.unqualified_type == cls):
if isinstance(constructor.boost_python_export, bool):
constructor.boost_python_export = False
for cls in asg['class ::std::set'].specializations(partial = False):
for method in cls.methods():
if method.localname in ['swap', 'key_comp', 'value_comp', 'get_allocator']:
if isinstance(method.boost_python_export, bool):
method.boost_python_export = False
for constructor in cls.constructors():
if not(constructor.nb_parameters == 0 or constructor.nb_parameters == 1 and constructor.parameters[0].qualified_type.unqualified_type == cls):
if isinstance(constructor.boost_python_export, bool):
constructor.boost_python_export = False
for cls in asg['class ::std::less'].specializations(partial = False):
cls.boost_python_export = False
for cls in asg['class ::std::hash'].specializations(partial = False):
cls.boost_python_export = False
for cls in asg['class ::std::char_traits'].specializations(partial = False):
for mtd in cls.methods(access='public'):
if library:
for function in asg['::statiskit::stl'].functions():
if function.localname in ['generator', 'insert']:
parameter = function.parameters[0].qualified_type.desugared_type
if parameter.is_class:
function.parent = parameter.unqualified_type
for mtd in asg['::statiskit::stl::String'].qualified_type.desugared_type.unqualified_type.methods():
mtd.boost_python_export = False
if 'class ::std::vector' in asg:
for cls in asg['class ::std::vector'].specializations(partial=False):
for method in cls.methods():
if method.localname in ['resize', 'shrink_to_fit', 'operator[]']:
if isinstance(method.boost_python_export, bool):
method.boost_python_export = False
for constructor in cls.constructors():
if not(constructor.nb_parameters == 0 or constructor.nb_parameters == 1 and constructor.parameters[0].qualified_type.unqualified_type == cls):
if isinstance(constructor.boost_python_export, bool):
constructor.boost_python_export = False
if 'class ::std::set' in asg:
for cls in asg['class ::std::set'].specializations(partial=False):
for method in cls.methods():
if method.localname in ['swap', 'key_comp', 'value_comp', 'get_allocator']:
if isinstance(method.boost_python_export, bool):
method.boost_python_export = False
for constructor in cls.constructors():
if not(constructor.nb_parameters == 0 or constructor.nb_parameters == 1 and constructor.parameters[0].qualified_type.unqualified_type == cls):
if isinstance(constructor.boost_python_export, bool):
constructor.boost_python_export = False
if 'class ::std::less' in asg:
for cls in asg['class ::std::less'].specializations(partial=False):
cls.boost_python_export = False
if 'class ::std::hash' in asg:
for cls in asg['class ::std::hash'].specializations(partial=False):
cls.boost_python_export = False
if 'class ::std::char_traits' in asg:
for cls in asg['class ::std::char_traits'].specializations(partial=False):
for mtd in cls.methods(access='public'):
cls.boost_python_export = False
if 'class ::std::allocator' in asg:
for cls in asg['class ::std::allocator'].specializations(partial=False):
cls.boost_python_export = False
for cls in asg['class ::std::allocator'].specializations(partial = False):
cls.boost_python_export = False
if 'class ::std::reverse_iterator' in asg:
for cls in asg['class ::std::reverse_iterator'].specializations(partial = False):
for cls in asg['class ::std::reverse_iterator'].specializations(partial=False):
cls.boost_python_export = False
if 'class ::std::initializer_list' in asg:
for cls in asg['class ::std::initializer_list'].specializations(partial = False):
for cls in asg['class ::std::initializer_list'].specializations(partial=False):
cls.boost_python_export = False
if 'class ::std::default_delete' in asg:
for cls in asg['class ::std::default_delete'].specializations(partial = False):
for cls in asg['class ::std::default_delete'].specializations(partial=False):
cls.boost_python_export = False
for mtd in asg['::statiskit::stl::String'].qualified_type.desugared_type.unqualified_type.methods():
#if mtd.localname in ['substr', 'compare']:
mtd.boost_python_export = False
if 'class ::std::move_iterator' in asg:
for cls in asg['class ::std::move_iterator'].specializations(partial=False):
cls.boost_python_export = False
for supercls in ['class ::std::_Rb_tree_const_iterator', 'class ::std::_Rb_tree_iterator',
'class ::std::__detail::_Node_const_iterator', 'class ::std::__detail::_Node_iterator']:
if supercls in asg:
for cls in asg[supercls].specializations(partial=False):
cls.boost_python_export = False
for cls in asg.classes(templated=False, specialized=True):
for template in cls.templates:
template = template.desugared_type.unqualified_type
if isinstance(template, TemplateSpecializationProxy) and template.specialize.globalname == supercls:
cls.boost_python_export = False
return asg

def generator(asg, module, decorator):
autowig.generator.plugin = 'boost_python'
nodes = [typedef.qualified_type.unqualified_type for typedef in asg['::statiskit::stl'].typedefs()] + asg['class ::std::basic_string'].specializations(partial = False)
nodes = [typedef.qualified_type.unqualified_type for typedef in asg['::statiskit::stl'].typedefs()] + asg['class ::std::basic_string'].specializations(partial=False)
nodes = list(itertools.chain(*[node.bases(inherited=True) for node in nodes])) + nodes + asg['::statiskit::stl'].declarations()
return autowig.generator(asg, nodes, module=module,
decorator=decorator,
closure=False,
helder='std::shared_ptr')

# asg.nodes('.*::std::__detail::_Hash_node_base::_Hash_node_base.*')
# '::std::bad_exception::~bad_exception'
helder='std::shared_ptr')
6 changes: 6 additions & 0 deletions src/py/wrapper/wrapper_448c20257e485acda59dc59305fceb58.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,16 @@ void wrapper_448c20257e485acda59dc59305fceb58()
boost::python::object module_a5e4e9231d6351ccb0e06756b389f0af(boost::python::handle< >(boost::python::borrowed(PyImport_AddModule(name_a5e4e9231d6351ccb0e06756b389f0af.c_str()))));
boost::python::scope().attr("std") = module_a5e4e9231d6351ccb0e06756b389f0af;
boost::python::scope scope_a5e4e9231d6351ccb0e06756b389f0af = module_a5e4e9231d6351ccb0e06756b389f0af;
struct function_group
{
static bool function_dedc883c74cd58daabc2a47c4db2d465(class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > const & parameter_0, class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > const & parameter_1)
{ return operator<(parameter_0, parameter_1); }
};
boost::python::class_< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, autowig::Held< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >::Type > class_448c20257e485acda59dc59305fceb58("_BasicString_448c20257e485acda59dc59305fceb58", "", boost::python::no_init);
class_448c20257e485acda59dc59305fceb58.def(boost::python::init< >(""));
class_448c20257e485acda59dc59305fceb58.def(boost::python::init< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > const & >(""));
class_448c20257e485acda59dc59305fceb58.def(boost::python::init< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > const &, ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >::size_type , ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >::size_type >(""));
class_448c20257e485acda59dc59305fceb58.def("__lt__", function_group::function_dedc883c74cd58daabc2a47c4db2d465, "");
class_448c20257e485acda59dc59305fceb58.def_readonly("npos", ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >::npos, "");

}
2 changes: 2 additions & 0 deletions src/py/wrapper/wrapper_6436891c9b6854f494789a812891cbe5.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ void wrapper_6436891c9b6854f494789a812891cbe5()
::std::set< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, struct ::std::less< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >, class ::std::allocator< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > > >::size_type (::std::set< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > >, ::std::less< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > > >, ::std::allocator< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > > > >::*method_pointer_2523f5eb6eb853d8bbb114a8e6c2fe65)(::std::set< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, struct ::std::less< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >, class ::std::allocator< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > > >::key_type const &) = &::std::set< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, struct ::std::less< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >, class ::std::allocator< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > > >::erase;
void (::std::set< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > >, ::std::less< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > > >, ::std::allocator< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > > > >::*method_pointer_d650d6e118685a07bf464cfa39f51cf2)() = &::std::set< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, struct ::std::less< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >, class ::std::allocator< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > > >::clear;
::std::set< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, struct ::std::less< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >, class ::std::allocator< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > > >::size_type (::std::set< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > >, ::std::less< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > > >, ::std::allocator< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > > > >::*method_pointer_5f93ec62659e578cbbc4e4471518af8f)(::std::set< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, struct ::std::less< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >, class ::std::allocator< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > > >::key_type const &) const = &::std::set< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, struct ::std::less< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >, class ::std::allocator< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > > >::count;
void (::std::set< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > >, ::std::less< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > > >, ::std::allocator< ::std::basic_string< char, ::std::char_traits< char >, ::std::allocator< char > > > >::*method_pointer_022aa9f8614a534d8f91318595dfcd83)(class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > const *, class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > const *) = &::std::set< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > >, struct ::std::less< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > >, class ::std::allocator< class ::std::basic_string< char, struct ::std::char_traits< char >, class ::std::allocator< char > > > >::insert;
struct function_group
{
static ::statiskit::stl::SetLessStringGenerator function_c0110bd91a2652afb1e70ddc9d04414a(::statiskit::stl::SetLessString const & parameter_0)
Expand All @@ -47,6 +48,7 @@ void wrapper_6436891c9b6854f494789a812891cbe5()
class_6436891c9b6854f494789a812891cbe5.def("erase", method_pointer_2523f5eb6eb853d8bbb114a8e6c2fe65, "");
class_6436891c9b6854f494789a812891cbe5.def("clear", method_pointer_d650d6e118685a07bf464cfa39f51cf2, "");
class_6436891c9b6854f494789a812891cbe5.def("count", method_pointer_5f93ec62659e578cbbc4e4471518af8f, "");
class_6436891c9b6854f494789a812891cbe5.def("insert", method_pointer_022aa9f8614a534d8f91318595dfcd83, "");
class_6436891c9b6854f494789a812891cbe5.def("__iter__", function_group::function_c0110bd91a2652afb1e70ddc9d04414a, "");
class_6436891c9b6854f494789a812891cbe5.def("insert", function_group::function_4ade380737de5d36a28e501db32f69eb, "");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ void wrapper_d0ba0922f2505f7b8e291326cad79af5()
bool (::std::equal_to< unsigned long int >::*method_pointer_096db2c8a9775702bd7119d2d5b8e22d)(unsigned long int const &, unsigned long int const &) const = &::std::equal_to< unsigned long int >::operator();
boost::python::class_< struct ::std::equal_to< unsigned long int >, autowig::Held< struct ::std::equal_to< unsigned long int > >::Type, boost::python::bases< struct ::std::binary_function< unsigned long int, unsigned long int, bool > > > class_d0ba0922f2505f7b8e291326cad79af5("_EqualTo_d0ba0922f2505f7b8e291326cad79af5", "", boost::python::no_init);
class_d0ba0922f2505f7b8e291326cad79af5.def(boost::python::init< >(""));
class_d0ba0922f2505f7b8e291326cad79af5.def(boost::python::init< struct ::std::equal_to< unsigned long int > const & >(""));
class_d0ba0922f2505f7b8e291326cad79af5.def("__call__", method_pointer_096db2c8a9775702bd7119d2d5b8e22d, "");

if(autowig::Held< struct ::std::equal_to< unsigned long int > >::is_class)
Expand Down

0 comments on commit 6846dc7

Please sign in to comment.