2008/10/17 Adrien Saladin <[EMAIL PROTECTED]>

> Hi,
>
> I would like to give pybindgen a try on a C++ library. I'm currently
> using Py++ (which is great) to automatically generate the correct
> interface.
> Before seriously playing with pybindgen, I need to know if it is
> possible to do a fine selection of which classes and methods has to be
> exposed to python.
> For some reasons I need to expose to python only a part of a C++
> library, but for this part I would like to do it in an automated
> fashion (ie: use pygccxml)
>
> Is it possible to do a kind of "exclude all classes and methods"
> command to the ModuleParser object (or another pybindgen/pygccxml
> object) and then only include a few classes one by one together with
> pygccxml ?  Is it possible to remove a single method from a class by
> name or argument types ?
> Are pre_scan_hook or post_scan_hook suitable for this ?


The pre_scan_hook can be used to exclude classes or methods:

from pygccxml.declarations.class_declaration import class_t

def pre_scan_hook(module_parser,
                  pygccxml_definition,
                  global_annotations,
                  parameter_annotations):
    if isinstance(pygccxml_definition, class_t):
         if pygccxml_definition.name not in ["Class1", "Class2"]:
               global_annotations['ignore'] = None


> Another question: on the features page
> (http://code.google.com/p/pybindgen/wiki/Features) it is said that
> multiple inheritance is not yet supported. What does this exactly mean
> ? It is not possible to expose a class C which publicly inherits from
> A and B ?


Correct.  That is not possible.

-- 
Gustavo J. A. M. Carneiro
INESC Porto, Telecommunications and Multimedia Unit
"The universe is always one step beyond logic." -- Frank Herbert
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to