[ZODB-Dev] example for the following?

Nitro nitro at dr-code.org
Thu Jan 22 11:59:35 EST 2009


Am 22.01.2009, 17:46 Uhr, schrieb Jamie McQuay <jamie at scimatic.com>:

> Hi,
>
> I'm using ZODB in a desktop app (i.e. not using zope).
>
> I have class A which contains a list of instances for class B.
>
> I can persist class A when the list of class B is empty.  When i add
> an instance of class B to the list (and set _p_changed = 1) i get the
> error:
> "TypeError: can't pickle PySwigObject objects"
>
> Can someone please give me a link of some advice in how i go about
> persisting lists of class instances?

It seems you used SWIG to create class B (or you use a library which  
provides B and the library uses SWIG). By default, instances of classes  
created by SWIG are not serializable. You'd get the same error if you tried

import pickle
pickle.dumps( B() )

So what you (or the library author) need to do is add one or more of the  
methods for serialization explained here:

http://www.python.org/doc/2.5/lib/pickle-inst.html
http://www.python.org/doc/2.5/lib/node321.html
http://www.python.org/doc/2.5/lib/node322.html

-Matthias


More information about the ZODB-Dev mailing list