データの永続化
**************

この章で解説されるモジュール群は Python データをディスクに永続的な形式
で保存します。モジュール "pickle" とモジュール "marshal" は多くの
Python データ型をバイト列に変換し、バイト列から再生成します。様々な
DBM 関連モジュールはハッシュを基にした、文字列から他の文字列へのマップ
を保存するファイルフォーマット群をサポートします。

この章で解説されるモジュールのリスト:

* "pickle" --- Python オブジェクトの直列化

  * 他の Python モジュールとの関係

    * "marshal" との比較

    * "json" との比較

  * データストリームの形式

  * モジュールインタフェース

  * pickle 化、非 pickle 化できるもの

  * クラスインスタンスの pickle 化

    * 外部オブジェクトの永続化

    * ディスパッチテーブル

    * 状態を持つオブジェクトの扱い

  * 型、関数、その他のオブジェクトに対するリダクションのカスタマイズ

  * アウトオブバウンドバッファ

    * 生産者 API

    * 消費者 API

    * 使用例

  * グローバル変数を制限する

  * 性能

  * 使用例

* "copyreg" --- "pickle" サポート関数を登録する

  * 使用例

* "shelve" --- Python オブジェクトの永続化

  * 制限事項

  * 使用例

* "marshal" --- 内部使用向けの Python オブジェクト整列化

* "dbm" --- Unix "データベース" へのインタフェース

  * "dbm.gnu" --- GNU による dbm 拡張

  * "dbm.ndbm" --- ndbm に基づくインタフェース

  * "dbm.dumb" --- 可搬性のある DBM 実装

* "sqlite3" --- SQLite データベースに対する DB-API 2.0 インタフェース

  * モジュールの関数と定数

  * Connection オブジェクト

  * カーソルオブジェクト

  * Row オブジェクト

  * 例外

  * SQLite と Python の型

    * はじめに

    * 追加された Python の型を SQLite データベースに格納するために適合
      関数を使う

      * オブジェクト自身で適合するようにする

      * 適合関数を登録する

    * SQLite の値を好きな Python 型に変換する

    * デフォルトの適合関数と変換関数

  * トランザクション制御

  * "sqlite3" の効率的な使い方

    * ショートカットメソッドを使う

    * 位置ではなく名前でカラムにアクセスする

    * コネクションをコンテキストマネージャーとして利用する
