Tipos de datos
**************

Los módulos descritos en este capítulo proporcionan una variedad de
tipos de datos especializados, como fechas y horas, matrices de tipo
fijo (*fixed-type arrays*), colas de montículos (*heap queues*), colas
de doble extremo (*double-ended queues*) y enumeraciones.

Python también proporciona algunos tipos de datos integrados,
concretamente "dict", "list", "set" y "frozenset", y "tuple". La clase
"str" se utiliza para contener cadenas de caracteres Unicode, y las
clases "bytes" y "bytearray" se utilizan para contener datos binarios.

En este capítulo se documentan los siguientes módulos:

* "datetime" --- Tipos básicos de fecha y hora

  * Objetos conscientes (*aware*) y naífs (*naive*)

  * Constantes

  * Tipos disponibles

    * Propiedades comunes

    * Determinando si un objeto es Consciente (*Aware*) o Naíf
      (*Naive*)

  * Objetos "timedelta"

    * Ejemplos de uso: "timedelta"

  * Objeto "date"

    * Ejemplos de uso: "date"

  * Objetos "datetime"

    * Ejemplos de uso: "datetime"

  * Objetos "time"

    * Ejemplos de uso: "time"

  * Objetos "tzinfo"

  * Objetos "timezone"

  * Comportamiento "strftime()" y "strptime()"

    * Códigos de formato "strftime()" y "strptime()"

    * Detalle técnico

* "calendar" --- Funciones generales relacionadas con el calendario

* "collections" --- Tipos de datos contenedor

  * Objetos "ChainMap"

    * Ejemplos y recetas "ChainMap"

  * Objetos "Counter"

  * Objetos "deque"

    * Recetas "deque"

  * Objetos "defaultdict"

    * Ejemplos "defaultdict"

  * "namedtuple()" Funciones *Factory* para Tuplas y Campos con
    Nombres

  * Objetos "OrderedDict"

    * Ejemplos y Recetas "OrderedDict"

  * Objetos "UserDict"

  * Objetos "UserList"

  * Objetos "UserString"

* "collections.abc" --- Clases Base Abstractas para Contenedores

  * Colecciones Clases Base Abstractas

* "heapq" --- Algoritmo de colas montículos (*heap*)

  * Ejemplos Básicos

  * Notas de Aplicación de la Cola de Prioridades

  * Teoría

* "bisect" --- Algoritmo de bisección de arreglos

  * Búsqueda en listas ordenadas

  * Otros ejemplos

* "array" --- Arreglos eficientes de valores numéricos

* "weakref" --- Referencias débiles

  * Objetos de Referencias Débiles

  * Ejemplo

  * Objetos Finalizadores

  * Comparando finalizadores con los métodos "__del__()"

* "types" --- Creación de tipos dinámicos y nombres para tipos
  integrados

  * Creación dinámica de tipos

  * Tipos de Intérpretes Estándar

  * Clases y funciones de utilidad adicionales

  * Funciones de utilidad de corutina

* "copy" --- Operaciones de copia superficial y profunda

* "pprint" --- Impresión bonita de datos

  * Objetos *PrettyPrinter*

  * Ejemplo

* "reprlib" --- Implementación "repr()" alternativa

  * Objetos Repr

  * Subclasificando Objetos Repr

* "enum" — Soporte para enumeraciones

  * Contenido del Módulo

  * Creando un Enum

  * Acceso programático a los miembros de la enumeración y sus
    atributos

  * Duplicando miembros y valores enum

  * Garantizando valores de enumeración únicos

  * Usando valores automáticos

  * Iteración

  * Comparaciones

  * Miembros permitidos y atributos de enumeraciones

  * Subclases restringidas de Enum

  * Serialización

  * API Funcional

  * Enumeraciones derivadas

    * IntEnum

    * IntFlag

    * Bandera

    * Otros

  * Cuándo usar "__new__()" contra "__init__()"

  * Ejemplos interesantes

    * Omitir valores

      * Usando "auto"

      * Usando "object"

      * Usando una cadena descriptiva

      * Usando  "__new__()" personalizados

    * OrderedEnum

    * DuplicateFreeEnum

    * Planeta

    * Periodo de tiempo

  * ¿Cómo son diferentes las Enums?

    * Clases Enum

    * Miembros de Enum (también conocidos como instancias)

    * Puntos más finos

      * Nombres soportados "__dunder__"

      * Nombres "_sunder_" compatibles

      * Tipo de miembro "Enum"

      * Valor booleano de las clases y miembros "Enum"

      * "Enum" clases con métodos

      * Combinando miembros de``Flag``
