blob: c7e5ae3828a2fc2908ad1ccf741353fd46673258 [file] [log] [blame]
Guido van Rossum34122fa1998-02-11 22:31:54 +00001\section{Standard Modules \sectcode{anydbm} and \sectcode{dumbdbm}}
Fred Drakeddf03bf1998-02-18 15:05:47 +00002\label{module-anydbm}
3\label{module-dumbdbm}
Guido van Rossum571391b1997-04-03 22:41:49 +00004\stmodindex{anydbm}
5\stmodindex{dumbdbm}
6
Fred Drakeddf03bf1998-02-18 15:05:47 +00007\module{anydbm} is a generic interface to variants of the DBM
Guido van Rossum571391b1997-04-03 22:41:49 +00008database--DBM, GDBM, or dbhash. If none of these modules is
Fred Drakeddf03bf1998-02-18 15:05:47 +00009installed, the slow-but-simple implementation in module \module{dumbdbm}
Guido van Rossum51a6c901997-05-09 02:23:45 +000010will be used. Both modules provide the same interface:
Guido van Rossum571391b1997-04-03 22:41:49 +000011
Fred Drake2478f9d1997-11-30 05:38:44 +000012% not the best solution, but it's what you get for documenting both
13% at the same time.
Fred Drake19479911998-02-13 06:58:54 +000014\setindexsubitem{(in modules anydbm, dumbdbm)}
Fred Drake2478f9d1997-11-30 05:38:44 +000015
Guido van Rossum571391b1997-04-03 22:41:49 +000016\begin{funcdesc}{open}{filename\optional{\, flag\, mode}}
Fred Drakeddf03bf1998-02-18 15:05:47 +000017Open the database file \var{filename} and return a corresponding object.
Guido van Rossum571391b1997-04-03 22:41:49 +000018The optional \var{flag} argument can be
19\code{'r'} to open an existing database for reading only,
20\code{'w'} to open an existing database for reading and writing,
21\code{'c'} to create the database if it doesn't exist, or
22\code{'n'}, which will always create a new empty database. If not
23specified, the default value is \code{'r'}.
24
25The optional \var{mode} argument is the \UNIX{} mode of the file, used
26only when the database has to be created. It defaults to octal
Guido van Rossum51a6c901997-05-09 02:23:45 +000027\code{0666} (and will be modified by the prevailing umask).
Guido van Rossum571391b1997-04-03 22:41:49 +000028\end{funcdesc}
29
Fred Drakeddf03bf1998-02-18 15:05:47 +000030The object returned by \function{open()} supports most of the same
Guido van Rossum571391b1997-04-03 22:41:49 +000031functionality as dictionaries; keys and their corresponding values can
Fred Drakeddf03bf1998-02-18 15:05:47 +000032be stored, retrieved, and deleted, and the \method{has_key()} and
33\method{keys()} methods are available. Keys and values must always be
Guido van Rossum51a6c901997-05-09 02:23:45 +000034strings.
Guido van Rossum571391b1997-04-03 22:41:49 +000035
Fred Drakeddf03bf1998-02-18 15:05:47 +000036Both modules also export the exception \exception{error}, which is
37raised for various problems. The \exception{anydbm.error} exception
38is simply a different name for the \exception{error} exception of the
39underlying implementation module used.