32.13. "pickletools" --- pickle 開発者のためのツール群
******************************************************

バージョン 2.3 で追加.

**ソースコード:** Lib/pickletools.py

======================================================================

このモジュールには、 "pickle" モジュールの詳細に関わる様々な定数や実装
に関する長大なコメント、そして pickle 化されたデータを解析する上で有用
な関数をいくつか定義しています。このモジュールの内容は "pickle",
"cPickle" の実装に関わっている Python コア開発者にとって有用なものです
; 普通の "pickle" 利用者にとっては、 "pickletools" モジュールはおそら
く関係ないものでしょう。

pickletools.dis(pickle, out=None, memo=None, indentlevel=4)

   pickle の抽象的な逆アセンブリを file-like オブジェクト *out* (デフ
   ォルトは "sys.stdout") に出力します。*pickle* は文字列または file-
   like オブジェクトです。 *memo* は Python の辞書で、 pickle のメモと
   して使われます; これは、 pickle 処理を行う 1 つのオブジェクトが、複
   数の pickle にわたって逆アセンブルを行うために使われます。ストリー
   ム上の "MARK" 命令コードが示す後続のレベルは、*indentlevel* 個の空
   白でインデントされます。

pickletools.genops(pickle)

   pickle 内の全ての opcode を取り出すイテレータ(*iterator*)を返します
   。このイテレータは "(opcode, arg, pos)" の三つ組みからなる配列を返
   します。 *opcode* は "OpcodeInfo" クラスのインスタンスのクラスです
   。 *arg* は *opcode* の引数としてデコードされた Python オブジェクト
   の値です。 *pos* は *opcode* の場所を表す値です。 *pickle* は文字列
   でもファイル類似オブジェクトでもかまいません。

pickletools.optimize(picklestring)

   使われていない "PUT" 命令コードを除去した上で、その新しい pickle 文
   字列を返します。最適化された pickle は、長さがより短く、転送時間が
   より少なく、必要とするストレージ領域がより狭く、unpickle 化がより効
   率的になります。

   バージョン 2.6 で追加.
