# 18.11 `pickletools` -- Tools for pickle developers.

This module contains various constants relating to the intimate details of the `pickle` module, some lengthy comments about the implementation, and a few useful functions for analyzing pickled data. The contents of this module are useful for Python core developers who are working on the `pickle` and `cPickle` implementations; ordinary users of the `pickle` module probably won't find the `pickletools` module relevant.

`dis`( | pickle[, out=None, memo=None, indentlevel=4])

  Outputs a symbolic disassembly of the pickle to the file-like object out, defaulting to `sys.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 can be used to perform disassemblies across multiple pickles created by the same pickler. Successive levels, indicated by `MARK` opcodes in the stream, are indented by indentlevel spaces.

`genops`( | pickle)

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