Guido van Rossum | 34122fa | 1998-02-11 22:31:54 +0000 | [diff] [blame] | 1 | \section{Standard Modules \sectcode{anydbm} and \sectcode{dumbdbm}} |
Fred Drake | ddf03bf | 1998-02-18 15:05:47 +0000 | [diff] [blame] | 2 | \label{module-anydbm} |
| 3 | \label{module-dumbdbm} |
Guido van Rossum | 571391b | 1997-04-03 22:41:49 +0000 | [diff] [blame] | 4 | \stmodindex{anydbm} |
| 5 | \stmodindex{dumbdbm} |
| 6 | |
Fred Drake | ddf03bf | 1998-02-18 15:05:47 +0000 | [diff] [blame] | 7 | \module{anydbm} is a generic interface to variants of the DBM |
Guido van Rossum | 571391b | 1997-04-03 22:41:49 +0000 | [diff] [blame] | 8 | database--DBM, GDBM, or dbhash. If none of these modules is |
Fred Drake | ddf03bf | 1998-02-18 15:05:47 +0000 | [diff] [blame] | 9 | installed, the slow-but-simple implementation in module \module{dumbdbm} |
Guido van Rossum | 51a6c90 | 1997-05-09 02:23:45 +0000 | [diff] [blame] | 10 | will be used. Both modules provide the same interface: |
Guido van Rossum | 571391b | 1997-04-03 22:41:49 +0000 | [diff] [blame] | 11 | |
Fred Drake | 2478f9d | 1997-11-30 05:38:44 +0000 | [diff] [blame] | 12 | % not the best solution, but it's what you get for documenting both |
| 13 | % at the same time. |
Fred Drake | 1947991 | 1998-02-13 06:58:54 +0000 | [diff] [blame] | 14 | \setindexsubitem{(in modules anydbm, dumbdbm)} |
Fred Drake | 2478f9d | 1997-11-30 05:38:44 +0000 | [diff] [blame] | 15 | |
Guido van Rossum | 571391b | 1997-04-03 22:41:49 +0000 | [diff] [blame] | 16 | \begin{funcdesc}{open}{filename\optional{\, flag\, mode}} |
Fred Drake | ddf03bf | 1998-02-18 15:05:47 +0000 | [diff] [blame] | 17 | Open the database file \var{filename} and return a corresponding object. |
Guido van Rossum | 571391b | 1997-04-03 22:41:49 +0000 | [diff] [blame] | 18 | The 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 |
| 23 | specified, the default value is \code{'r'}. |
| 24 | |
| 25 | The optional \var{mode} argument is the \UNIX{} mode of the file, used |
| 26 | only when the database has to be created. It defaults to octal |
Guido van Rossum | 51a6c90 | 1997-05-09 02:23:45 +0000 | [diff] [blame] | 27 | \code{0666} (and will be modified by the prevailing umask). |
Guido van Rossum | 571391b | 1997-04-03 22:41:49 +0000 | [diff] [blame] | 28 | \end{funcdesc} |
| 29 | |
Fred Drake | ddf03bf | 1998-02-18 15:05:47 +0000 | [diff] [blame] | 30 | The object returned by \function{open()} supports most of the same |
Guido van Rossum | 571391b | 1997-04-03 22:41:49 +0000 | [diff] [blame] | 31 | functionality as dictionaries; keys and their corresponding values can |
Fred Drake | ddf03bf | 1998-02-18 15:05:47 +0000 | [diff] [blame] | 32 | be stored, retrieved, and deleted, and the \method{has_key()} and |
| 33 | \method{keys()} methods are available. Keys and values must always be |
Guido van Rossum | 51a6c90 | 1997-05-09 02:23:45 +0000 | [diff] [blame] | 34 | strings. |
Guido van Rossum | 571391b | 1997-04-03 22:41:49 +0000 | [diff] [blame] | 35 | |
Fred Drake | ddf03bf | 1998-02-18 15:05:47 +0000 | [diff] [blame] | 36 | Both modules also export the exception \exception{error}, which is |
| 37 | raised for various problems. The \exception{anydbm.error} exception |
| 38 | is simply a different name for the \exception{error} exception of the |
| 39 | underlying implementation module used. |