#17040: document that shelve.open() and the Shelf object can be used as context managers. Initial patch by Berker Peksag.

This commit is contained in:
Ezio Melotti 2013-02-01 05:01:50 +02:00
parent 894499fa27
commit d23c0a8992
1 changed files with 12 additions and 4 deletions

View File

@ -44,8 +44,11 @@ lots of shared sub-objects. The keys are ordinary strings.
.. note::
Do not rely on the shelf being closed automatically; always call
:meth:`close` explicitly when you don't need it any more, or use a
:keyword:`with` statement with :func:`contextlib.closing`.
:meth:`~Shelf.close` explicitly when you don't need it any more, or
use :func:`shelve.open` as a context manager::
with shelve.open('spam') as db:
db['eggs'] = 'eggs'
.. warning::
@ -118,10 +121,15 @@ Restrictions
The *keyencoding* parameter is the encoding used to encode keys before they
are used with the underlying dict.
.. versionadded:: 3.2
The *keyencoding* parameter; previously, keys were always encoded in
:class:`Shelf` objects can also be used as context managers.
.. versionchanged:: 3.2
Added the *keyencoding* parameter; previously, keys were always encoded in
UTF-8.
.. versionchanged:: 3.4
Added context manager support.
.. class:: BsdDbShelf(dict, protocol=None, writeback=False, keyencoding='utf-8')