[Grok-dev] Pickling an object stored in the Zodb. How do I skip the __parent__ attribute?

Sebastian Ware sebastian at urbantalk.se
Thu Aug 14 10:13:17 EDT 2008


Thanks for the pointer! I have read:

   http://www.python.org/dev/peps/pep-0307/

And found that the pickling is done by calling the method you refered  
to:

   __getstate__()

and that it really does exist on the objects in the Zodb. I will  
override the method by means of an adapter for the root object that I  
am pickling and remove the attribute [__parent__]. Feels as though  
this might actually work :)

Mvh Sebastian

14 aug 2008 kl. 15.11 skrev Jegenye 2001 Bt (Miklós Prisznyák):

>
>
> 2008/8/14 Sebastian Ware <sebastian at urbantalk.se>
> I am trying to export and import objects from the Zodb using
> cPickle.dumps().
>
> My problem is that the pickler traverses the __parent__ attribute thus
> returning a much larger object graph than I wish to serialize.
>
> Do I have to subclass the pickler or is there som other smart way of
> making it skip the __parent__ attribute?
>
>
> You could  write an adapter  (or modify the class of the content  
> objects itself) to use __setstate__ and __getstate__ , etc:
>
> http://www.python.org/doc/2.5/lib/node321.html
>
> -- 
> Best regards,
>    Miklós
>
> _______________________________________________
> Grok-dev mailing list
> Grok-dev at zope.org
> http://mail.zope.org/mailman/listinfo/grok-dev



More information about the Grok-dev mailing list