[ python-Bugs-964868 ] pickle protocol 2 is incompatible(?) with
Cookie module
SourceForge.net
noreply at sourceforge.net
Sat Jun 5 15:46:02 EDT 2004
Bugs item #964868, was opened at 2004-06-02 05:12
Message generated for change (Comment added) made by akuchling
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=964868&group_id=5470
Category: Python Library
Group: None
>Status: Closed
>Resolution: Duplicate
Priority: 5
Submitted By: Manlio Perillo (manlioperillo)
>Assigned to: A.M. Kuchling (akuchling)
Summary: pickle protocol 2 is incompatible(?) with Cookie module
Initial Comment:
>>> sys.version
'2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC v.1200 32 bit
(Intel)]'
>>> sys.platform
'win32'
>>> sys.getwindowsversion()
(5, 1, 2600, 2, '')
Hi.
I don't know if this is a bug of Cookie module or of
pickle.
When I dump a Cookie instance with protocol = 2, the
data is 'corrupted'.
With protocol = 1 there are no problems.
Here is an example:
>>> s = 'Set-Cookie: key=value; path=/; expires=Fri,
21-May-2004 10:40:51 GMT'
>>> c = Cookie.BaseCookie(s)
>>> print c
Set-Cookie: key=value; expires=Fri,; Path=/;
>>> buf = pickle.dumps(c, protocol = 2)
>>> print pickle.loads(buf)
Set-Cookie: key=Set-Cookie: key=value; expires=Fri,;
Path=/;;
>>> buf = pickle.dumps(c, protocol = 1)
>>> print pickle.loads(buf)
Set-Cookie: key=value; expires=Fri,; Path=/;
Thanks and regards Manlio Perillo
----------------------------------------------------------------------
>Comment By: A.M. Kuchling (akuchling)
Date: 2004-06-05 15:46
Message:
Logged In: YES
user_id=11375
Closing.
----------------------------------------------------------------------
Comment By: Aaron Brady (insomnike)
Date: 2004-06-05 11:57
Message:
Logged In: YES
user_id=1057404
#826897 appears to be a dupe of this.
__setitem__ is called for the items in the dict *before* the
instance variables are set.
----------------------------------------------------------------------
Comment By: Aaron Brady (insomnike)
Date: 2004-06-05 11:44
Message:
Logged In: YES
user_id=1057404
Okay, I've looked at the output from protocols 0, 1 and 2
from pickletools.py, and after nearly two hours of looking
into this, I think the problem lies with the fact that both
Morsel and BaseCookie derive from dict and override __setitem__.
I think that this stems from BUILD using __dict__ directly,
but lack the internal knowledge of pickle to investigate
further.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=964868&group_id=5470
More information about the Python-bugs-list
mailing list