Data Persistence **************** The modules described in this chapter support storing Python data in a persistent form on disk. The ``pickle`` and ``marshal`` modules can turn many Python data types into a stream of bytes and then recreate the objects from the bytes. The various DBM-related modules support a family of hash-based file formats that store a mapping of strings to other strings. The ``bsddb`` module also provides such disk-based string-to-string mappings based on hashing, and also supports B-Tree and record-based formats. The list of modules described in this chapter is: * ``pickle`` --- Python object serialization * Relationship to other Python modules * Data stream format * Usage * What can be pickled and unpickled? * The pickle protocol * Pickling and unpickling normal class instances * Pickling and unpickling extension types * Pickling and unpickling external objects * Subclassing Unpicklers * Example * ``cPickle`` --- A faster ``pickle`` * ``copy_reg`` --- Register ``pickle`` support functions * ``shelve`` --- Python object persistence * Restrictions * Example * ``marshal`` --- Internal Python object serialization * ``anydbm`` --- Generic access to DBM-style databases * ``whichdb`` --- Guess which DBM module created a database * ``dumbdbm`` --- Portable DBM implementation * Dumbdbm Objects