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) の三つ組みからなる配列を返します。 opcodeOpcodeInfo クラスのインスタンスのクラスです。 argopcode の引数としてデコードされた Python オブジェクトの値です。 posopcode の場所を表す値です。 pickle は文字列でもファイル類似オブジェクトでもかまいません。

pickletools.optimize(picklestring)

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

バージョン 2.6 で追加.