11.12. "dumbdbm" --- 可搬性のある DBM 実装
******************************************

注釈: "dumbdbm" モジュールは、Python 3 では "dbm.dumb" にリネームさ
  れまし た。 *2to3* ツールが自動的にソースコードの import を修正しま
  す。

注釈: "dumbdbm" モジュールは、 "anydbm" が安定なモジュールを他に見つ
  けるこ とができなかった際の最後の手段とされています。 "dumbdbm" モジ
  ュール は速度を重視して書かれているわけではなく、他のデータベースモ
  ジュール のように重い使い方をするためのものではありません。

"dumbdbm" モジュールは永続的で辞書に類似したインタフェースを提供し、全
て Python で書かれています。 "gdbm" や "bsddb" といったモジュールと異
なり、外部ライブラリは必要ありません。他の永続性マップ型のように、キー
および値は常に文字列でなければなりません。

以下はこのモジュールの定義:

exception dumbdbm.error

   I/O エラーのような dumbdbm 特有のエラーの際に送出されます。不正なキ
   ーを指定したときのような、一般的な対応付けエラーの際には "KeyError"
   が送出されます。

dumbdbm.open(filename[, flag[, mode]])

   dumbdbm データベースを開き、 dubmdbm オブジェクトを返します。
   *filename* 引数はデータベースファイル名のベース名 (特定の拡張子をも
   たないもの) です。dumbdbm データベースが生成される際、 ".dat" およ
   び ".dir" の拡張子を持ったファイルが生成されます。

   オプションの *flag* 引数は現状では無視されます; データベースは常に
   更新のために開かれ、存在しない場合には新たに作成されます。

   オプションの *mode* 引数は、新たにデータベースを作成しなければなら
   ない場合に使われる Unix のファイルモードです。標準の値は 8 進数の
   "0666" です (この値は現在有効な umask で修飾されます)。

   バージョン 2.2 で変更: *mode* 引数は以前のバージョンでは無視されま
   す.

辞書型形式のメソッドに加えて、"dumbdm" オブジェクトには以下のメソッド
があります:

dumbdbm.close()

   "dumbdm" データベースをクローズします。

参考:

  "anydbm" モジュール
     "dbm" スタイルの汎用的なインタフェース

  "dbm" モジュール
     DBM/NDBM ライブラリに対する同様のインタフェース。

  "gdbm" モジュール
     GNU GDBM ライブラリの類似したインタフェース

  "shelve" モジュール
     非文字列データを記録する永続化モジュール。

  "whichdb" モジュール
     既存のデータベースがどの形式のデータベースか判定するユーティリテ
     ィモジュール。


11.12.1. Dumbdbm オブジェクト
=============================

"UserDict.DictMixin" クラスで提供されているメソッドに加え、 "dumbdbm"
オブジェクトでは以下のメソッドを提供しています。

dumbdbm.sync()

   ディスク上の辞書とデータファイルを同期します。このメソッドは
   "Shelve" オブジェクトの "sync()" メソッドから呼び出されます。
