libdumbdbm.tex 2.48 KB
Newer Older
1
\section{\module{dumbdbm} ---
2
         Portable DBM implementation}
3

4 5
\declaremodule{standard}{dumbdbm}
\modulesynopsis{Portable implementation of the simple DBM interface.}
6 7 8

\index{databases}

9 10 11
\begin{notice}
The \module{dumbdbm} module is intended as a last resort fallback for
the \refmodule{anydbm} module when no more robust module is available.
12
The \module{dumbdbm} module is not written for speed and is not nearly as
13 14
heavily used as the other database modules.
\end{notice}
15

16
The \module{dumbdbm} module provides a persistent dictionary-like interface
17
which is written entirely in Python.  Unlike other modules such as
18
\refmodule{gdbm} and \refmodule{bsddb}, no external library is required.  As
19 20 21 22 23 24 25 26 27 28 29 30
with other persistent mappings, the keys and values must always be strings.

The module defines the following:

\begin{excdesc}{error}
Raised on dumbdbm-specific errors, such as I/O errors.  \exception{KeyError}
is raised for general mapping errors like specifying an incorrect key.
\end{excdesc}

\begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}}
Open a dumbdbm database and return a dumbdbm object.  The \var{filename}
argument is the basename of the database file (without any specific
31 32
extensions).  When a dumbdbm database is created, files with \file{.dat} and
\file{.dir} extensions are created.
33

34 35
The optional \var{flag} argument is currently ignored; the database is
always opened for update, and will be created if it does not exist.
36 37 38

The optional \var{mode} argument is the \UNIX{} mode of the file, used
only when the database has to be created.  It defaults to octal
39 40 41
\code{0666} (and will be modified by the prevailing umask).
\versionchanged[The \var{mode} argument was ignored in earlier
                versions]{2.2}
42 43 44 45 46 47 48 49 50 51 52
\end{funcdesc}


\begin{seealso}
  \seemodule{anydbm}{Generic interface to \code{dbm}-style databases.}
  \seemodule{dbm}{Similar interface to the DBM/NDBM library.}
  \seemodule{gdbm}{Similar interface to the GNU GDBM library.}
  \seemodule{shelve}{Persistence module which stores non-string data.}
  \seemodule{whichdb}{Utility module used to determine the type of an
                      existing database.}
\end{seealso}
53 54 55 56 57 58 59 60 61 62 63


\subsection{Dumbdbm Objects \label{dumbdbm-objects}}

In addition to the methods provided by the \class{UserDict.DictMixin} class,
\class{dumbdbm} objects provide the following methods.

\begin{methoddesc}{sync}{}
Synchronize the on-disk directory and data files.  This method is called by
the \method{sync} method of \class{Shelve} objects.
\end{methoddesc}