[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