[pypy-dev] serialize and deserialize objects in Pypy

Maciej Fijalkowski fijall at gmail.com
Fri Aug 7 13:46:38 CEST 2015


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
>> >
>
>


More information about the pypy-dev mailing list