From 85602268dc9d57b8965b619dd313868ebe4b9b8f Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Tue, 3 Feb 2009 04:19:10 +0000 Subject: The default shelve pickle protocol should have been 3. --- Doc/library/shelve.rst | 2 +- Lib/shelve.py | 2 +- Misc/NEWS | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Doc/library/shelve.rst b/Doc/library/shelve.rst index b39a92c..44eff59 100644 --- a/Doc/library/shelve.rst +++ b/Doc/library/shelve.rst @@ -23,7 +23,7 @@ lots of shared sub-objects. The keys are ordinary strings. database file is opened for reading and writing. The optional *flag* parameter has the same interpretation as the *flag* parameter of :func:`dbm.open`. - By default, version 2 pickles are used to serialize values. The version of the + By default, version 3 pickles are used to serialize values. The version of the pickle protocol can be specified with the *protocol* parameter. By default, mutations to persistent-dictionary mutable entries are not diff --git a/Lib/shelve.py b/Lib/shelve.py index cf6dac6..fb2fa93 100644 --- a/Lib/shelve.py +++ b/Lib/shelve.py @@ -84,7 +84,7 @@ class Shelf(collections.MutableMapping): keyencoding="utf-8"): self.dict = dict if protocol is None: - protocol = 2 + protocol = 3 self._protocol = protocol self.writeback = writeback self.cache = {} diff --git a/Misc/NEWS b/Misc/NEWS index 5426046..68cea16 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -157,6 +157,8 @@ Library - Issue #1581476: Always use the Tcl global namespace when calling into Tcl. +- The shelve module now defaults to pickle protocol 3. + - Fix a bug in the trace module where a bytes object from co_lnotab had its items being passed through ord(). -- cgit v0.12