[pypy-dev] serialize and deserialize objects in Pypy
Yicong Huang
hengha.mao at gmail.com
Fri Aug 7 14:06:20 CEST 2015
The problem is we might need to support several kinds of collection
objects: list, dict, tuple.
In addition, we might not know what is exact type of objects stored in the
collections. A list might store int, string, double.
So it might involve a lot of work to write the python wrapper.
Do you have any good ideas?
On Fri, Aug 7, 2015 at 7:46 PM, Maciej Fijalkowski <fijall at gmail.com> wrote:
> you really can't convert it to the C stuff like that. You need to do:
>
> foo = ffi.new("int[]", 13)
> foo[0] = 12
> foo[1] = 55
>
> etc.
>
> You can write nice python wrapper around those things too, if the data
> is too bare bone.
>
> On Fri, Aug 7, 2015 at 1:09 PM, Yicong Huang <hengha.mao at gmail.com> wrote:
> > Hi Maciej,
> >
> > Could you provide some details on how to use cffi buffers? (a simple demo
> > code or documents)
> > I tried the below code but it did not work.
> >
> > #python list
> > x=[1,2,3,4]
> > #intend to convert to c++ char*, but failed
> > p=ffi.from_buffer(x)
> > #intend to covert back to python list, but failed
> > y=ffi.buffer(p)
> >
> > Thanks!
> >
> > -Ethan
> >
> > On Fri, Aug 7, 2015 at 6:24 PM, Maciej Fijalkowski <fijall at gmail.com>
> wrote:
> >>
> >> you can use cffi buffers (e.g. cffi char*) that you manipulate from
> >> python using wrappers. They would behave (sort of) like python objects
> >> and the wrapper code is really not a performance penalty in most cases
> >>
> >> On Fri, Aug 7, 2015 at 12:19 PM, Yicong Huang <hengha.mao at gmail.com>
> >> wrote:
> >> > Hi,
> >> >
> >> > Are there any good methods to serialize Pypy object to C++ char* and
> >> > deserialize to Pypy object from C++ char*?
> >> >
> >> > Our scenario like this:
> >> > We have at least two C++ process running, and each process embeded
> Pypy
> >> > to
> >> > execute some functions.
> >> > And we woule like to reuse Pypy object from one process to another
> >> > process.
> >> > For primitive objects, int/char/bool/double etc., we could use cffi to
> >> > pass
> >> > objects.
> >> > Pypy object -> c++ process 1 -> c++ process 2 -> Pypy object
> >> >
> >> > But for complex objects, e.g. list/array/dict/tuple, are there any
> >> > methods?
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > pypy-dev mailing list
> >> > pypy-dev at python.org
> >> > https://mail.python.org/mailman/listinfo/pypy-dev
> >> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20150807/4c695427/attachment.html>
More information about the pypy-dev
mailing list