Persistance des données
***********************

Les modules décrits dans ce chapitre permettent de stocker des données
Python de manière persistante typiquement sur disque.  Les modules
"pickle" et "marshal" peuvent transformer n'importe quel type Python
en une séquence d'octets, puis recréer les objets depuis ces octets.
Les différents modules du paquet *dbm* gèrent une catégorie de formats
de fichier basée sur des hach, stockant des correspondances entre
chaînes de caractères.

La liste des modules documentés dans ce chapitre est :

* "pickle" --- Module de sérialisation d'objets Python

  * Relations aux autres modules python

    * Comparaison avec "marshal"

    * Comparison with "json"

  * Data stream format

  * Module Interface

  * What can be pickled and unpickled?

  * Pickling Class Instances

    * Persistence of External Objects

    * Dispatch Tables

    * Handling Stateful Objects

  * Custom Reduction for Types, Functions, and Other Objects

  * Out-of-band Buffers

    * Provider API

    * Consumer API

    * Exemple

  * Restricting Globals

  * Performances

  * Exemples

* "copyreg" — Enregistre les fonctions support de "pickle"

  * Exemple

* "shelve" — Objet Python persistant

  * Limites

  * Exemple

* "marshal" — Sérialisation interne des objets Python

* "dbm" --- Interfaces to Unix "databases"

  * "dbm.gnu" --- GNU's reinterpretation of dbm

  * "dbm.ndbm" --- Interface based on ndbm

  * "dbm.dumb" --- Portable DBM implementation

* "sqlite3" — Interface DB-API 2.0 pour bases de données SQLite

  * Fonctions et constantes du module

  * Objets de connexions

  * Cursor Objects

  * Row Objects

  * Exceptions

  * SQLite and Python types

    * Introduction

    * Using adapters to store additional Python types in SQLite
      databases

      * Letting your object adapt itself

      * Registering an adapter callable

    * Converting SQLite values to custom Python types

    * Default adapters and converters

  * Controlling Transactions

  * Using "sqlite3" efficiently

    * Using shortcut methods

    * Accessing columns by name instead of by index

    * Using the connection as a context manager
