32.13.pickletools — Tools for pickle developers

New in version 2.3.

Source code:Lib/pickletools.py


This module contains various constants relating to the intimate details of thepickle module, some lengthy comments about the implementation, and a fewuseful functions for analyzing pickled data. The contents of this module areuseful for Python core developers who are working on thepickle andcPickle implementations; ordinary users of thepickle moduleprobably won’t find thepickletools module relevant.

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

Outputs a symbolic disassembly of the pickle to the file-like objectout,defaulting tosys.stdout.pickle can be a string or a file-like object.memo can be a Python dictionary that will be used as the pickle’s memo; it canbe used to perform disassemblies across multiple pickles created by the samepickler. Successive levels, indicated byMARK opcodes in the stream, areindented byindentlevel spaces.

pickletools.genops(pickle)

Provides aniterator over all of the opcodes in a pickle, returning asequence of(opcode,arg,pos) triples.opcode is an instance of anOpcodeInfo class;arg is the decoded value, as a Python object, ofthe opcode’s argument;pos is the position at which this opcode is located.pickle can be a string or a file-like object.

pickletools.optimize(picklestring)

Returns a new equivalent pickle string after eliminating unusedPUTopcodes. The optimized pickle is shorter, takes less transmission time,requires less storage space, and unpickles more efficiently.

New in version 2.6.