|
From: | Dave NotTelling |
Subject: | Re: [Discuss-gnuradio] SWIG std::vector<pmt::pmt_t> issue |
Date: | Tue, 2 Aug 2016 08:22:14 -0400 |
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 <address@hidden> 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 iterableswig/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 address@hidden https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Prev in Thread] | Current Thread | [Next in Thread] |