@@ -90,10 +90,13 @@ the Oracle Berkeley DB.
9090   .. versionchanged :: 3.11 
9191      *file * accepts a :term: `path-like object `.
9292
93- The object returned by :func: `~dbm.open ` supports the same basic functionality as a
94- :class: `dict `; keys and their corresponding values can be stored, retrieved, and
95- deleted, and the :keyword: `in ` operator and the :meth: `!keys ` method are
96- available, as well as :meth: `!get ` and :meth: `!setdefault ` methods.
93+ The object returned by :func: `~dbm.open ` supports the basic
94+ functionality of mutable :term: `mappings <mapping> `;
95+ keys and their corresponding values can be stored, retrieved, and
96+ deleted, and iteration, the :keyword: `in ` operator and methods :meth: `!keys `,
97+ :meth: `!get `, :meth: `!setdefault ` and :meth: `!clear ` are available.
98+ The :meth: `!keys ` method returns a list instead of a view object.
99+ The :meth: `!setdefault ` method requires two arguments.
97100
98101Key and values are always stored as :class: `bytes `. This means that when
99102strings are used they are implicitly converted to the default encoding before
@@ -114,6 +117,10 @@ will automatically close them when done.
114117   Deleting a key from a read-only database raises a database module specific exception
115118   instead of :exc: `KeyError `.
116119
120+ .. versionchanged :: 3.13 
121+    :meth: `!clear ` methods are now available for all :mod: `dbm ` backends.
122+ 
123+ 
117124The following example records some hostnames and a corresponding title,  and
118125then prints out the contents of the database::
119126
@@ -173,9 +180,6 @@ or any other SQLite browser, including the SQLite CLI.
173180.. function :: open(filename, /, flag="r", mode=0o666) 
174181
175182   Open an SQLite database.
176-    The returned object behaves like a :term: `mapping `,
177-    implements a :meth: `!close ` method,
178-    and supports a "closing" context manager via the :keyword: `with ` keyword.
179183
180184   :param filename: 
181185      The path to the database to be opened.
@@ -192,6 +196,17 @@ or any other SQLite browser, including the SQLite CLI.
192196      The Unix file access mode of the file (default: octal ``0o666 ``),
193197      used only when the database has to be created.
194198
199+    The returned database object behaves similar to a mutable :term: `mapping `,
200+    but the :meth: `!keys ` method returns a list, and
201+    the :meth: `!setdefault ` method requires two arguments.
202+    It also supports a "closing" context manager via the :keyword: `with ` keyword.
203+ 
204+    The following methods are also provided:
205+ 
206+    .. method :: sqlite3.close() 
207+ 
208+       Close the SQLite database.
209+ 
195210   .. method :: sqlite3.reorganize() 
196211
197212      If you have carried out a lot of deletions and would like to shrink the space
@@ -204,6 +219,7 @@ or any other SQLite browser, including the SQLite CLI.
204219
205220      .. versionadded :: next 
206221
222+ 
207223:mod: `dbm.gnu ` --- GNU database manager
208224--------------------------------------- 
209225
@@ -232,6 +248,11 @@ functionality like crash tolerance.
232248   raised for general mapping errors like specifying an incorrect key.
233249
234250
251+ .. data :: open_flags 
252+ 
253+    A string of characters the *flag * parameter of :meth: `~dbm.gnu.open ` supports.
254+ 
255+ 
235256.. function :: open(filename, flag="r", mode=0o666, /) 
236257
237258   Open a GDBM database and return a :class: `!gdbm ` object.
@@ -270,14 +291,25 @@ functionality like crash tolerance.
270291   .. versionchanged :: 3.11 
271292      *filename * accepts a :term: `path-like object `.
272293
273-    .. data :: open_flags 
294+    :class: `!gdbm ` objects behave similar to mutable :term: `mappings <mapping> `,
295+    but methods :meth: `!items `, :meth: `!values `, :meth: `!pop `, :meth: `!popitem `,
296+    and :meth: `!update ` are not supported,
297+    the :meth: `!keys ` method returns a list, and
298+    the :meth: `!setdefault ` method requires two arguments.
299+    It also supports a "closing" context manager via the :keyword: `with ` keyword.
300+ 
301+    .. versionchanged :: 3.2 
302+       Added the :meth: `!get ` and :meth: `!setdefault ` methods.
274303
275-       A string of characters the *flag * parameter of :meth: `~dbm.gnu.open ` supports.
304+    .. versionchanged :: 3.13 
305+       Added the :meth: `!clear ` method.
276306
277-    :class: `!gdbm ` objects behave similar to :term: `mappings <mapping> `,
278-    but :meth: `!items ` and :meth: `!values ` methods are not supported.
279307   The following methods are also provided:
280308
309+    .. method :: gdbm.close() 
310+ 
311+       Close the GDBM database.
312+ 
281313   .. method :: gdbm.firstkey() 
282314
283315      It's possible to loop over every key in the database using this method  and the
@@ -313,16 +345,6 @@ functionality like crash tolerance.
313345      When the database has been opened in fast mode, this method forces any
314346      unwritten data to be written to the disk.
315347
316-    .. method :: gdbm.close() 
317- 
318-       Close the GDBM database.
319- 
320-    .. method :: gdbm.clear() 
321- 
322-       Remove all items from the GDBM database.
323- 
324-       .. versionadded :: 3.13 
325- 
326348
327349:mod: `dbm.ndbm ` --- New Database Manager
328350---------------------------------------- 
@@ -383,22 +405,27 @@ This module can be used with the "classic" NDBM interface or the
383405   :param int mode: 
384406      |mode_param_doc |
385407
386-    :class: `!ndbm ` objects behave similar to :term: `mappings <mapping> `,
387-    but :meth: `!items ` and :meth: `!values ` methods are not supported.
388-    The following methods are also provided:
389- 
390408   .. versionchanged :: 3.11 
391409      Accepts :term: `path-like object ` for filename.
392410
393-    .. method :: ndbm.close() 
411+    :class: `!ndbm ` objects behave similar to mutable :term: `mappings <mapping> `,
412+    but methods :meth: `!items `, :meth: `!values `, :meth: `!pop `, :meth: `!popitem `,
413+    and :meth: `!update ` are not supported,
414+    the :meth: `!keys ` method returns a list, and
415+    the :meth: `!setdefault ` method requires two arguments.
416+    It also supports a "closing" context manager via the :keyword: `with ` keyword.
394417
395-       Close the NDBM database.
418+    .. versionchanged :: 3.2 
419+       Added the :meth: `!get ` and :meth: `!setdefault ` methods.
396420
397-    .. method :: ndbm.clear() 
421+    .. versionchanged :: 3.13 
422+       Added the :meth: `!clear ` method.
398423
399-       Remove all items from the NDBM database. 
424+    The following method is also provided: 
400425
401-       .. versionadded :: 3.13 
426+    .. method :: ndbm.close() 
427+ 
428+       Close the NDBM database.
402429
403430
404431:mod: `dbm.dumb ` --- Portable DBM implementation
@@ -436,9 +463,6 @@ The :mod:`!dbm.dumb` module defines the following:
436463.. function :: open(filename, flag="c", mode=0o666) 
437464
438465   Open a :mod: `!dbm.dumb ` database.
439-    The returned database object behaves similar to a :term: `mapping `,
440-    in addition to providing :meth: `~dumbdbm.sync ` and :meth: `~dumbdbm.close `
441-    methods.
442466
443467   :param filename: 
444468      The basename of the database file (without extensions).
@@ -477,14 +501,12 @@ The :mod:`!dbm.dumb` module defines the following:
477501   .. versionchanged :: 3.11 
478502      *filename * accepts a :term: `path-like object `.
479503
480-    In addition to the methods provided by the
481-    :class: `collections.abc.MutableMapping ` class,
482-    the following methods are provided:
504+    The returned database object behaves similar to a mutable :term: `mapping `,
505+    but the :meth: `!keys ` and :meth: `!items ` methods return lists, and
506+    the :meth: `!setdefault ` method requires two arguments.
507+    It also supports a "closing" context manager via the :keyword: `with ` keyword.
483508
484-    .. method :: dumbdbm.sync() 
485- 
486-       Synchronize the on-disk directory and data files.  This method is called
487-       by the :meth: `shelve.Shelf.sync ` method.
509+    The following methods are also provided:
488510
489511   .. method :: dumbdbm.close() 
490512
@@ -501,3 +523,8 @@ The :mod:`!dbm.dumb` module defines the following:
501523         that this factor changes for each :mod: `dbm ` submodule.
502524
503525      .. versionadded :: next 
526+ 
527+    .. method :: dumbdbm.sync() 
528+ 
529+       Synchronize the on-disk directory and data files.  This method is called
530+       by the :meth: `shelve.Shelf.sync ` method.
0 commit comments