This section describes the ``pickling protocol'' that defines the
interface between the pickler/unpickler and the objects that are being
serialized. This protocol provides a standard way for you to define,
customize, and control how your objects are serialized and
de-serialized. The description in this section doesn't cover specific
customizations that you can employ to make the unpickling environment
safer from untrusted pickle data streams; see section 3.14.6
for more details.