mirror of
https://github.com/python/cpython.git
synced 2025-11-20 02:50:14 +00:00
bpo-34204: Use pickle.DEFAULT_PROTOCOL in shelve (GH-19639)
Use pickle.DEFAULT_PROTOCOL (currently 5) in shelve instead of a hardcoded 3.
This commit is contained in:
parent
4173320920
commit
df59273c7a
5 changed files with 29 additions and 8 deletions
|
|
@ -25,8 +25,9 @@ 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 3 pickles are used to serialize values. The version of the
|
||||
pickle protocol can be specified with the *protocol* parameter.
|
||||
By default, pickles created with :data:`pickle.DEFAULT_PROTOCOL` are used
|
||||
to serialize values. The version of the pickle protocol can be specified
|
||||
with the *protocol* parameter.
|
||||
|
||||
Because of Python semantics, a shelf cannot know when a mutable
|
||||
persistent-dictionary entry is modified. By default modified objects are
|
||||
|
|
@ -40,6 +41,10 @@ lots of shared sub-objects. The keys are ordinary strings.
|
|||
determine which accessed entries are mutable, nor which ones were actually
|
||||
mutated).
|
||||
|
||||
.. versionchanged:: 3.10
|
||||
:data:`pickle.DEFAULT_PROTOCOL` is now used as the default pickle
|
||||
protocol.
|
||||
|
||||
.. note::
|
||||
|
||||
Do not rely on the shelf being closed automatically; always call
|
||||
|
|
@ -108,9 +113,10 @@ Restrictions
|
|||
A subclass of :class:`collections.abc.MutableMapping` which stores pickled
|
||||
values in the *dict* object.
|
||||
|
||||
By default, version 3 pickles are used to serialize values. The version of the
|
||||
pickle protocol can be specified with the *protocol* parameter. See the
|
||||
:mod:`pickle` documentation for a discussion of the pickle protocols.
|
||||
By default, pickles created with :data:`pickle.DEFAULT_PROTOCOL` are used
|
||||
to serialize values. The version of the pickle protocol can be specified
|
||||
with the *protocol* parameter. See the :mod:`pickle` documentation for a
|
||||
discussion of the pickle protocols.
|
||||
|
||||
If the *writeback* parameter is ``True``, the object will hold a cache of all
|
||||
entries accessed and write them back to the *dict* at sync and close times.
|
||||
|
|
@ -130,6 +136,10 @@ Restrictions
|
|||
.. versionchanged:: 3.4
|
||||
Added context manager support.
|
||||
|
||||
.. versionchanged:: 3.10
|
||||
:data:`pickle.DEFAULT_PROTOCOL` is now used as the default pickle
|
||||
protocol.
|
||||
|
||||
|
||||
.. class:: BsdDbShelf(dict, protocol=None, writeback=False, keyencoding='utf-8')
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue