[3.12] Docs: rework the dbm.dumb introduction (GH-114550) (#114620)

(cherry picked from commit 6c2b419fb9)

- consistently use correct parameter markup
- consistently use submodule name as database name
- improve accuracy of the dbm.dumb.open() spec
- remove dumbdbm class refs and replace them with generic "database object"
- use parameter list for dbm.dumb.open()
(cherry picked from commit 6c2b419fb9)

Co-authored-by: Erlend E. Aasland <erlend@python.org>
This commit is contained in:
Miss Islington (bot) 2024-01-26 19:19:20 +01:00 committed by GitHub
parent 74bd566f70
commit bf35ac1d4c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -339,13 +339,14 @@ This module can be used with the "classic" NDBM interface or the
-------------- --------------
The :mod:`dbm.dumb` module provides a persistent dictionary-like interface which The :mod:`dbm.dumb` module provides a persistent :class:`dict`-like
is written entirely in Python. Unlike other modules such as :mod:`dbm.gnu` no interface which is written entirely in Python.
external library is required. As with other persistent mappings, the keys and Unlike other :mod:`dbm` backends, such as :mod:`dbm.gnu`, no
values are always stored as bytes. external library is required.
As with other :mod:`dbm` backends,
The module defines the following: the keys and values are always stored as :class:`bytes`.
The :mod:`!dbm.dumb` module defines the following:
.. exception:: error .. exception:: error
@ -353,26 +354,33 @@ The module defines the following:
raised for general mapping errors like specifying an incorrect key. raised for general mapping errors like specifying an incorrect key.
.. function:: open(filename[, flag[, mode]]) .. function:: open(filename, flag="c", mode=0o666)
Open a ``dumbdbm`` database and return a dumbdbm object. The *filename* argument is Open a :mod:`!dbm.dumb` database.
the basename of the database file (without any specific extensions). When a The returned database object behaves similar to a :term:`mapping`,
dumbdbm database is created, files with :file:`.dat` and :file:`.dir` extensions in addition to providing :meth:`~dumbdbm.sync` and :meth:`~dumbdbm.close`
are created. methods.
The optional *flag* argument can be: :param filename:
The basename of the database file (without extensions).
A new database creates the following files:
.. csv-table:: - :file:`{filename}.dat`
:header: "Value", "Meaning" - :file:`{filename}.dir`
:type database: :term:`path-like object`
``'r'``, |flag_r| :param str flag:
``'w'``, |flag_w| .. csv-table::
``'c'`` (default), |flag_c| :header: "Value", "Meaning"
``'n'``, |flag_n|
The optional *mode* argument is the Unix mode of the file, used only when the ``'r'``, |flag_r|
database has to be created. It defaults to octal ``0o666`` (and will be modified ``'w'``, |flag_w|
by the prevailing umask). ``'c'`` (default), |flag_c|
``'n'``, |flag_n|
:param int mode:
The Unix file access mode of the file (default: ``0o666``),
used only when the database has to be created.
.. warning:: .. warning::
It is possible to crash the Python interpreter when loading a database It is possible to crash the Python interpreter when loading a database
@ -380,20 +388,18 @@ The module defines the following:
Python's AST compiler. Python's AST compiler.
.. versionchanged:: 3.5 .. versionchanged:: 3.5
:func:`.open` always creates a new database when the flag has the value :func:`open` always creates a new database when *flag* is ``'n'``.
``'n'``.
.. versionchanged:: 3.8 .. versionchanged:: 3.8
A database opened with flags ``'r'`` is now read-only. Opening with A database opened read-only if *flag* is ``'r'``.
flags ``'r'`` and ``'w'`` no longer creates a database if it does not A database is not created if it does not exist if *flag* is ``'r'`` or ``'w'``.
exist.
.. versionchanged:: 3.11 .. versionchanged:: 3.11
Accepts :term:`path-like object` for filename. *filename* accepts a :term:`path-like object`.
In addition to the methods provided by the In addition to the methods provided by the
:class:`collections.abc.MutableMapping` class, :class:`dumbdbm` objects :class:`collections.abc.MutableMapping` class,
provide the following methods: the following methods are provided:
.. method:: dumbdbm.sync() .. method:: dumbdbm.sync()
@ -402,5 +408,5 @@ The module defines the following:
.. method:: dumbdbm.close() .. method:: dumbdbm.close()
Close the ``dumbdbm`` database. Close the database.