Re: [pygccxml-development] Using pyplusplus with indexing suite
Brought to you by:
mbaas,
roman_yakovenko
|
From: Roman Y. <rom...@gm...> - 2006-05-17 17:13:32
|
On 5/17/06, Allen Bierbaum <al...@vr...> wrote:
> Roman Yakovenko wrote:
>
> > On 5/17/06, Allen Bierbaum <al...@vr...> wrote:
> >
> >> I have a function class method that I am trying to wrap with pyplusplu=
s.
> >>
> >> The method is similar to:
> >>
> >> std::vector< boost::shared_ptr< ClassA > > MyClass::getData();
> >>
> >> I would like to use the indexing suite or something similar to make it
> >> possible to iterate over and use this list from python. Is there any
> >> support for this directly in pyplusplus or can anyone tell me what I
> >> need to do custom to allow this?
> >
> >
> > There are 2 ways to solve the problem. I will not like both of them.
> >
> > 1. Add custom code to class A:
> >
> > class_<std::vector< boost::shared_ptr<A> > >("AVec")
> > .def(vector_indexing_suite<std::vector< std::vector<
> > boost::shared_ptr<A> > > >())
> > ;
> >
> > And then from Python create a reference from global scope to it:
> >
> > AVec =3D A.AVec
> >
> > http://boost.org/libs/python/doc/v2/indexing.html
>
> I will have to try this one. I have to admit the code sample above
> doesn't make sense yet, but I will re-read the indexing documentation
> and see if I can figure it out.
>
> >
> > 2. I will accept the patch. Now when I think about it, it should be
> > fairly simple.
> > 1. There is a need for vector_indexing_suite_ code creator.
> > 2. After this small modification should be done to types_database_t=
.
> > It should recognize, that data type is vector or map.
> > pygccxml.declarations.templates parser will do the job easier
> > 3. Modify module_creator.creator_t class
> >
> > I am running out of time, otherwise I would implement the patch by
> > myself.
> > I think it should take like 3-5 hours.
> >
> Unfortunately I am not skilled enough to implement this. It is one
> thing to make patches that change interfaces slightly or fix small parts
> of code, it is an entirely different thing to understand the full code
> base and add a large new capability. :)
>
> I wish I had time to learn the code that well, but I do not right now.
> Sorry. :(
You don't have to be sorry. Your comments keeps me in focus. I will impleme=
nt
this feature in next release.
> Thanks for your help.
> -Allen
>
--=20
Roman Yakovenko
C++ Python language binding
http://www.language-binding.net/
|