blob: 44957748fba227e1c4a17a73250b3e9c4efaf05e [file] [log] [blame]
Skip Montanarod54c5dd2003-07-14 12:12:37 +00001\section{\module{dumbdbm} ---
Fred Drake6c497092003-07-21 15:30:15 +00002 Portable DBM implementation}
Skip Montanarod54c5dd2003-07-14 12:12:37 +00003
Fred Drake6c497092003-07-21 15:30:15 +00004\declaremodule{standard}{dumbdbm}
5\modulesynopsis{Portable implementation of the simple DBM interface.}
Skip Montanarod54c5dd2003-07-14 12:12:37 +00006
7\index{databases}
8
Fred Drake6c497092003-07-21 15:30:15 +00009\begin{notice}
10The \module{dumbdbm} module is intended as a last resort fallback for
11the \refmodule{anydbm} module when no more robust module is available.
Skip Montanarod54c5dd2003-07-14 12:12:37 +000012The \module{dumbdbm} module is not written for speed and is not nearly as
Fred Drake6c497092003-07-21 15:30:15 +000013heavily used as the other database modules.
14\end{notice}
Skip Montanarod54c5dd2003-07-14 12:12:37 +000015
Fred Drake6c497092003-07-21 15:30:15 +000016The \module{dumbdbm} module provides a persistent dictionary-like interface
Skip Montanarod54c5dd2003-07-14 12:12:37 +000017which is written entirely in Python. Unlike other modules such as
Fred Drake6c497092003-07-21 15:30:15 +000018\refmodule{gdbm} and \refmodule{bsddb}, no external library is required. As
Skip Montanarod54c5dd2003-07-14 12:12:37 +000019with other persistent mappings, the keys and values must always be strings.
20
21The module defines the following:
22
23\begin{excdesc}{error}
24Raised on dumbdbm-specific errors, such as I/O errors. \exception{KeyError}
25is raised for general mapping errors like specifying an incorrect key.
26\end{excdesc}
27
28\begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}}
Skip Montanarod54c5dd2003-07-14 12:12:37 +000029Open a dumbdbm database and return a dumbdbm object. The \var{filename}
30argument is the basename of the database file (without any specific
Fred Drake6c497092003-07-21 15:30:15 +000031extensions). When a dumbdbm database is created, files with \file{.dat} and
32\file{.dir} extensions are created.
Skip Montanarod54c5dd2003-07-14 12:12:37 +000033
Fred Drake6c497092003-07-21 15:30:15 +000034The optional \var{flag} argument is currently ignored; the database is
35always opened for update, and will be created if it does not exist.
Skip Montanarod54c5dd2003-07-14 12:12:37 +000036
37The optional \var{mode} argument is the \UNIX{} mode of the file, used
38only when the database has to be created. It defaults to octal
Fred Drake6c497092003-07-21 15:30:15 +000039\code{0666} (and will be modified by the prevailing umask).
40\versionchanged[The \var{mode} argument was ignored in earlier
41 versions]{2.2}
Skip Montanarod54c5dd2003-07-14 12:12:37 +000042\end{funcdesc}
43
Fred Drake6c497092003-07-21 15:30:15 +000044
45\begin{seealso}
46 \seemodule{anydbm}{Generic interface to \code{dbm}-style databases.}
47 \seemodule{dbm}{Similar interface to the DBM/NDBM library.}
48 \seemodule{gdbm}{Similar interface to the GNU GDBM library.}
49 \seemodule{shelve}{Persistence module which stores non-string data.}
50 \seemodule{whichdb}{Utility module used to determine the type of an
51 existing database.}
52\end{seealso}
53
54
Skip Montanarod54c5dd2003-07-14 12:12:37 +000055\subsection{Dumbdbm Objects \label{dumbdbm-objects}}
56
57In addition to the methods provided by the \class{UserDict.DictMixin} class,
58\class{dumbdbm} objects provide the following methods.
59
60\begin{methoddesc}{sync}{}
61Synchronize the on-disk directory and data files. This method is called by
62the \method{sync} method of \class{Shelve} objects.
63\end{methoddesc}