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 で追加.