8. Types de données
*******************

Les modules documentés dans ce chapitre fournissent une gamme de types
de données spécialisés tel que les dates et les heures, les listes à
type prédéfini, les *heap queue*, les queues synchronisées, et les
ensembles.

Python fournit aussi quelques types natifs, typiquement "dict",
"list", "set", "frozenset", et "tuple". La classe "str" est utilisée
pour stocker des chaînes Unicode, et la classe "bytes" des données
binaires.

Les modules suivants sont documentés dans ce chapitre :

* 8.1. "datetime" — Types de base pour la date et l'heure

  * 8.1.1. Types disponibles

  * 8.1.2. Objets "timedelta"

  * 8.1.3. Objets "date"

  * 8.1.4. Objets "datetime"

  * 8.1.5. Objets "time"

  * 8.1.6. Objets "tzinfo"

  * 8.1.7. Objets "timezone"

  * 8.1.8. Comportement de "strftime()" et "strptime()"

* 8.2. "calendar" — Fonctions calendaires générales

* 8.3. "collections" — Types de données de conteneurs

  * 8.3.1. Objets "ChainMap"

    * 8.3.1.1. Exemples et cas pratiques utilisant "ChainMap"

  * 8.3.2. Objets "Counter"

  * 8.3.3. Objets "deque"

    * 8.3.3.1. Cas pratiques utilisant "deque"

  * 8.3.4. Objets "defaultdict"

    * 8.3.4.1. Exemples utilisant "defaultdict"

  * 8.3.5. "namedtuple()": fonction de construction pour *n-uplets*
    (*tuples*) avec des champs nommés

  * 8.3.6. Objets "OrderedDict"

    * 8.3.6.1. Exemples et cas pratiques utilisant "OrderDict"

  * 8.3.7. Objets "UserDict"

  * 8.3.8. Objets "UserList"

  * 8.3.9. Objets "UserString"

* 8.4. "collections.abc" --- Classes de base abstraites pour les
  conteneurs

  * 8.4.1. Classes de base abstraites de collections

* 8.5. "heapq" — File de priorité basée sur un tas

  * 8.5.1. Exemples simples

  * 8.5.2. Notes d'implémentation de la file de priorité

  * 8.5.3. Théorie

* 8.6. "bisect" — Algorithme de bissection de listes

  * 8.6.1. Chercher dans des listes triées

  * 8.6.2. Autres Exemples

* 8.7. "array" — Tableaux efficaces de valeurs numériques

* 8.8. "weakref" --- Weak references

  * 8.8.1. Objets à références faibles

  * 8.8.2. Exemple

  * 8.8.3. Finalizer Objects

  * 8.8.4. Comparing finalizers with "__del__()" methods

* 8.9. "types" --- Dynamic type creation and names for built-in types

  * 8.9.1. Dynamic Type Creation

  * 8.9.2. Standard Interpreter Types

  * 8.9.3. Additional Utility Classes and Functions

  * 8.9.4. Coroutine Utility Functions

* 8.10. "copy" — Opérations de copie superficielle et récursive

* 8.11. "pprint" — L’affichage élégant de données

  * 8.11.1. Les Objets PrettyPrinter

  * 8.11.2. Exemple

* 8.12. "reprlib" --- Alternate "repr()" implementation

  * 8.12.1. Repr Objects

  * 8.12.2. Subclassing Repr Objects

* 8.13. "enum" — Énumerations

  * 8.13.1. Contenu du module

  * 8.13.2. Création d'une *Enum*

  * 8.13.3. Accès dynamique aux membres et à leurs attributs

  * 8.13.4. Duplication de membres et de valeurs

  * 8.13.5. Coercition d'unicité des valeurs d'une énumération

  * 8.13.6. Valeurs automatiques

  * 8.13.7. Itération

  * 8.13.8. Comparaisons

  * 8.13.9. Membres et attributs autorisés dans une énumération

  * 8.13.10. Restricted subclassing of enumerations

  * 8.13.11. Sérialisation

  * 8.13.12. API par fonction

  * 8.13.13. Énumérations dérivées

    * 8.13.13.1. IntEnum

    * 8.13.13.2. IntFlag

    * 8.13.13.3. Option

    * 8.13.13.4. Autres

  * 8.13.14. Exemples intéressants

    * 8.13.14.1. Omettre les valeurs

      * 8.13.14.1.1. Avec "auto"

      * 8.13.14.1.2. Avec "object"

      * 8.13.14.1.3. Avec une chaîne de caractères de description

      * 8.13.14.1.4. Avec une méthode ad-hoc "__new__()"

    * 8.13.14.2. OrderedEnum

    * 8.13.14.3. DuplicateFreeEnum

    * 8.13.14.4. Planet

  * 8.13.15. En quoi les *Enums* sont différentes ?

    * 8.13.15.1. Classes *Enum*

    * 8.13.15.2. Membres d'Enum (c.-à-d. instances)

    * 8.13.15.3. Aspects approfondis

      * 8.13.15.3.1. Noms de la forme "__dunder__" disponibles

      * 8.13.15.3.2. Noms de la forme "_sunder_" disponibles

      * 8.13.15.3.3. Type des membres de "Enum"

      * 8.13.15.3.4. Valeur booléenne des classes "Enum" et de leurs
        membres

      * 8.13.15.3.5. Classes "Enum" avec des méthodes

      * 8.13.15.3.6. Combinaison de membres de "Flag"
