Home | History | Annotate | Download | only in library
      1 :mod:`dumbdbm` --- Portable DBM implementation
      2 ==============================================
      3 
      4 .. module:: dumbdbm
      5    :synopsis: Portable implementation of the simple DBM interface.
      6 
      7 .. note::
      8    The :mod:`dumbdbm` module has been renamed to :mod:`dbm.dumb` in Python 3.
      9    The :term:`2to3` tool will automatically adapt imports when converting your
     10    sources to Python 3.
     11 
     12 .. index:: single: databases
     13 
     14 .. note::
     15 
     16    The :mod:`dumbdbm` module is intended as a last resort fallback for the
     17    :mod:`anydbm` module when no more robust module is available. The :mod:`dumbdbm`
     18    module is not written for speed and is not nearly as heavily used as the other
     19    database modules.
     20 
     21 The :mod:`dumbdbm` module provides a persistent dictionary-like interface which
     22 is written entirely in Python.  Unlike other modules such as :mod:`gdbm` and
     23 :mod:`bsddb`, no external library is required.  As with other persistent
     24 mappings, the keys and values must always be strings.
     25 
     26 The module defines the following:
     27 
     28 
     29 .. exception:: error
     30 
     31    Raised on dumbdbm-specific errors, such as I/O errors.  :exc:`KeyError` is
     32    raised for general mapping errors like specifying an incorrect key.
     33 
     34 
     35 .. function:: open(filename[, flag[, mode]])
     36 
     37    Open a dumbdbm database and return a dumbdbm object.  The *filename* argument is
     38    the basename of the database file (without any specific extensions).  When a
     39    dumbdbm database is created, files with :file:`.dat` and :file:`.dir` extensions
     40    are created.
     41 
     42    The optional *flag* argument is currently ignored; the database is always opened
     43    for update, and will be created if it does not exist.
     44 
     45    The optional *mode* argument is the Unix mode of the file, used only when the
     46    database has to be created.  It defaults to octal ``0666`` (and will be modified
     47    by the prevailing umask).
     48 
     49    .. versionchanged:: 2.2
     50       The *mode* argument was ignored in earlier versions.
     51 
     52 In addition to the dictionary-like methods, ``dumbdm`` objects
     53 provide the following method:
     54 
     55 
     56 .. function:: close()
     57 
     58    Close the ``dumbdm`` database.
     59 
     60 
     61 .. seealso::
     62 
     63    Module :mod:`anydbm`
     64       Generic interface to ``dbm``\ -style databases.
     65 
     66    Module :mod:`dbm`
     67       Similar interface to the DBM/NDBM library.
     68 
     69    Module :mod:`gdbm`
     70       Similar interface to the GNU GDBM library.
     71 
     72    Module :mod:`shelve`
     73       Persistence module which stores non-string data.
     74 
     75    Module :mod:`whichdb`
     76       Utility module used to determine the type of an existing database.
     77 
     78 
     79 .. _dumbdbm-objects:
     80 
     81 Dumbdbm Objects
     82 ---------------
     83 
     84 In addition to the methods provided by the :class:`UserDict.DictMixin` class,
     85 :class:`~dumbdbm.dumbdbm` objects provide the following methods.
     86 
     87 
     88 .. method:: dumbdbm.sync()
     89 
     90    Synchronize the on-disk directory and data files.  This method is called by the
     91    :meth:`sync` method of :class:`Shelve` objects.
     92 
     93