Saving PMTs as Python Dictionaries to .Mat File

I have a series of collected metadata files. I have taken both the
gr_read_file_metadata.py and parse_file_metadata.py scripts and hacked
them
to my own needs. What I would like to do is convert the PMT to python
dictionary (already done in the vanilla files) and save the dicitonary
as a
Matlab .mat file format. SciPy has the necessary libraries and functions
to
save with the savemat command, the problem is, at least I believe it is
the
PMTs are being problematic.

For example I convert all headers to a dictionary and try to save just
that
and I get this error:

/usr/lib64/python2.6/site-packages/scipy/io/matlab/mio.py:165:
FutureWarning: Using oned_as default value (‘column’) This will change
to
‘row’ in future versions
oned_as=oned_as)
Traceback (most recent call last):
File “./parser_mat.py”, line 71, in
main(filename, options.savefile, options.detached, options.computer)
File “./parser_mat.py”, line 51, in main
scipy.io.savemat(savefile, dict(info))
File “/usr/lib64/python2.6/site-packages/scipy/io/matlab/mio.py”, line
168, in savemat
MW.put_variables(mdict)
File “/usr/lib64/python2.6/site-packages/scipy/io/matlab/mio5.py”,
line
1217, in put_variables
mat_writer.write()
File “/usr/lib64/python2.6/site-packages/scipy/io/matlab/mio5.py”,
line
897, in write
self._write_items()
File “/usr/lib64/python2.6/site-packages/scipy/io/matlab/mio5.py”,
line
941, in _write_items
MW = MWG.matrix_writer_factory(self.file_stream, el[f])
File “/usr/lib64/python2.6/site-packages/scipy/io/matlab/mio5.py”,
line
1094, in matrix_writer_factory
% (arr, type(arr)))
TypeError: Could not convert
_30320b0200000000_p_boost__intrusive_ptrT_pmt__pmt_base_t (type <type
‘SwigPyObject’>) to array

The snippet of code to save is this:

scip.io.savemat(savefile, dict(info))

savefile is a string that is a user set arguement. info is the
dictionary.

I don’t know if anyone on this list has tried to do what I am doing but
I
would appreciate any insight on where this is going wrong, especially if
the problem is on my end.

Thanks

Jonathan F.

We have functions to convert PMTs to corresponding Python types. Have
you tried those? to_python()?

M

No I didn’t, I had no idea they existed, as I was depending on
http://gnuradio.org/doc/doxygen/page_pmt.html for information instead of
http://gnuradio.org/redmine/projects/gnuradio/wiki/TypePMT which has a
little more info on to_python().

My bad, I guess I wasn’t thorough in reading about PMTs. I fixed my
problem
now.

Thank you.

Jonathan