[Python-Dev] Pickling Question
Patrick K. O'Brien
pobrien@orbtech.com
Sat, 9 Nov 2002 08:46:55 -0600
On Saturday 09 November 2002 08:35 am, Guido van Rossum wrote:
> > I don't feel that this solution is entirely satisfactory and so I
> > thought I would ask (a bit late, I know) whether I am completely
> > correct in my assertions. If not, how else can this be handled. If
> > so, is there any chance of adding a better way to handle this
> > situation?
> >
> > [1] http://www-106.ibm.com/developerworks/library/l-pypers.html
>
> I don't believe a search-and-replace on a pickle can ever be safe.
> In a binary pickle, it might interfere with length fields. And in
> either kind of pickle, you might accidentally replace data that
> happens to look like a module name.
Yes. And that's why this was nagging me. I should have asked about it
sooner.
> I'd suggest something else instead: when you have a pickle
> referencing module A which has since been renamed to B, create a
> dummy module A that contains "from B import *". Then load the
> pickle, and write it back again. The loading should work because a
> reference to class A.C will find it (as an alias for B.C); the
> storing should store it as B.C because that's the real name of class
I like this. Wish I had thought of it. Thanks.
--
Patrick K. O'Brien
Orbtech http://www.orbtech.com/web/pobrien
-----------------------------------------------
"Your source for Python programming expertise."
-----------------------------------------------