Hi Dave, that's a bit hard to tell without context; generally, Python can construct wrapper code for std::vector that makes those iterable, and handles the interna a bit different, but with PMTs the non-bracket method of access might work:
your_vector_of_pmts_in_python.at(index) if that works, you can tell SWIG that your vector type should be an iterable; try going into your OOT's swig/ootname.i and add a %include <std_vector.i> pretty much at the beginneing, and make sure to have in your %{%}: %{ #include <pmt/pmt.h> #include <vector> %} and further down, declare %template(ootname_vector_pmt_t) std::vector<pmt::pmt_t>; And then hope that SWIG does what you want :( Best regards, Marcus On 01.08.2016 23:49, Dave NotTelling wrote: > Anyone able to help with this? I had to create helper methods to > serialize the PMT objects and return a vector of strings. Not the > best solution :( > > On Thu, Jul 28, 2016 at 11:04 AM, Dave NotTelling <dmp250...@gmail.com > <mailto:dmp250...@gmail.com>> wrote: > > I have a utility lib in C++ created with 'gr_modtool add noblock' > that has a function that returns a vector of pmt::pmt_t values. I > need to then be able to access the elements of that vector via > Python. Right now I get the following error when using a for loop > to iterate over the vector: > > > TypeError: 'SwigPyObject' object is not iterable > swig/python detected a memory leak of type 'std::vector< > boost::intrusive_ptr< pmt::pmt_base >,std::allocator< > boost::intrusive_ptr< pmt::pmt_base > > > *', no destructor found. > > > How does one iterate over the elements of a > std::vector<pmt::pmt_t> in Python? > > Thanks! > > > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio