\section{Standard Module \module{anydbm}}
\label{module-anydbm}
\stmodindex{anydbm}

\module{anydbm} is a generic interface to variants of the DBM
database --- \module{dbhash}\refbimodindex{dbhash},
\module{gdbm}\refbimodindex{gdbm}, or \module{dbm}\refbimodindex{dbm}.
If none of these modules is installed, the slow-but-simple
implementation in module \module{dumbdbm}\refstmodindex{dumbdbm} will
be used.

\begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}}
Open the database file \var{filename} and return a corresponding object.

If the database file already exists, the \module{whichdb} module is
used to determine its type and the appropriate module is used; if it
doesn't exist, the first module listed above that can be imported is
used.

The optional \var{flag} argument can be
\code{'r'} to open an existing database for reading only,
\code{'w'} to open an existing database for reading and writing,
\code{'c'} to create the database if it doesn't exist, or
\code{'n'}, which will always create a new empty database.  If not
specified, the default value is \code{'r'}.

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
\code{0666} (and will be modified by the prevailing umask).
\end{funcdesc}

\begin{excdesc}{error}
A tuple containing the exceptions that can be raised by each of the
supported modules, with a unique exception \exception{anydbm.error} as
the first item --- the latter is used when \exception{anydbm.error} is
raised.
\end{excdesc}

The object returned by \function{open()} supports most of the same
functionality as dictionaries; keys and their corresponding values can
be stored, retrieved, and deleted, and the \method{has_key()} and
\method{keys()} methods are available.  Keys and values must always be
strings.



\section{Standard Module \module{dumbdbm}}
\label{module-dumbdbm}
\stmodindex{dumbdbm}

A simple and slow database implemented entirely in Python.  This
should only be used when no other DBM-style database is available.


\begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}}
Open the database file \var{filename} and return a corresponding object.
The optional \var{flag} argument can be
\code{'r'} to open an existing database for reading only,
\code{'w'} to open an existing database for reading and writing,
\code{'c'} to create the database if it doesn't exist, or
\code{'n'}, which will always create a new empty database.  If not
specified, the default value is \code{'r'}.

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
\code{0666} (and will be modified by the prevailing umask).
\end{funcdesc}

\begin{excdesc}{error}
Raised for errors not reported as \exception{KeyError} errors.
\end{excdesc}
