La Biblioteca Estándar de Python
********************************

Aunque Referencia del Lenguaje Python  describe la sintaxis y
semántica precisa del lenguaje Python, este manual de referencia de la
biblioteca describe la biblioteca estándar que se distribuye con
Python. También describe algunos componentes opcionales que son
usualmente incluidos en las distribuciones de Python.

La biblioteca estándar de Python es muy amplia, y ofrece una gran
cantidad de producciones como puede verse en la larga lista de
contenidos. La biblioteca contiene módulos incorporados (escritos en
C) que brindan acceso a las funcionalidades del sistema como entrada y
salida de archivos que serían de otra forma inaccesibles para los
programadores en Python, así como módulos escritos en Python que
proveen soluciones estandarizadas para los diversos problemas que
pueden ocurrir en el día a día en la programación. Algunos de éstos
módulos están diseñados explícitamente para alentar y reforzar la
portabilidad de los programas en Python abstrayendo especificidades de
las plataformas para lograr APIs neutrales a la plataforma.

Los instaladores de Python para la plataforma Windows frecuentemente
incluyen la biblioteca estándar completa y suelen también incluir
muchos componentes adicionales. Para los sistemas operativos tipo Unix
Python suele ser provisto como una colección de paquetes, así que
puede requerirse usar las herramientas de empaquetado disponibles en
los sistemas operativos para obtener algunos o todos los componentes
opcionales.

Además de la biblioteca estándar, existe un colección creciente de
varios miles de componentes (abarcando módulos o programas
individuales, paquetes o *frameworks* completos de desarrollo de
aplicaciones), disponibles en el Python Package Index.

* Introducción

  * Notas sobre la disponibilidad

* Funciones Built-in

* Constantes incorporadas

  * Constantes agregadas por el módulo "site"

* Tipos Integrados

  * Evaluar como valor verdadero/falso

  * Operaciones booleanas --- "and", "or", "not"

  * Comparaciones

  * Tipos numéricos --- "int", "float", "complex"

  * Tipos de iteradores

  * Tipos secuencia --- "list", "tuple", "range"

  * Cadenas de caracteres --- "str"

  * Tipos de secuencias binarias --- "bytes", "bytearray" y
    "memoryview"

  * Conjuntos --- "set", "frozenset"

  * Tipos Mapa --- "dict"

  * Tipos Gestores de Contexto

  * Tipos de Anotaciones de Tipo — *Generic Alias*, *Union*

  * Otros tipos predefinidos

  * Atributos especiales

  * Integer string conversion length limitation

* Excepciones incorporadas

  * Exception context

  * Inheriting from built-in exceptions

  * Clases base

  * Excepciones específicas

  * Advertencias

  * Jerarquía de excepción

* Servicios de procesamiento de texto

  * "string" --- Operaciones comunes de cadena de caracteres

  * "re" --- Operaciones con expresiones regulares

  * "difflib" --- Funciones auxiliares para calcular deltas

  * "textwrap" --- Envoltura y relleno de texto

  * "unicodedata" --- Base de datos Unicode

  * "stringprep" --- Preparación de cadenas de Internet

  * "readline" --- Interfaz readline de GNU

  * "rlcompleter" --- Función de completado para GNU readline

* Servicios de datos binarios

  * "struct" --- Interpreta bytes como paquetes de datos binarios

  * "codecs" --- Registro de códec y clases base

* Tipos de datos

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

  * "zoneinfo" --- Soporte de zona horaria IANA

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

  * "collections" --- Tipos de datos contenedor

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

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

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

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

  * "weakref" --- Referencias débiles

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

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

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

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

  * "enum" — Soporte para enumeraciones

  * "graphlib" ---Funcionalidad para operar con estructuras de tipo-
    grafo

* Módulos numéricos y matemáticos

  * "numbers" --- Clase base abstracta numérica

  * "math" --- Funciones matemáticas

  * "cmath" -- Función matemática para números complejos

  * "decimal" --- Aritmética decimal de coma fija y coma flotante

  * "fractions" --- Números racionales

  * "random" ---Generar números pseudoaleatorios

  * "statistics" --- Funciones de estadística matemática

* Módulos de programación funcional

  * "itertools" --- Funciones que crean iteradores para bucles
    eficientes

  * "functools" --- Funciones de orden superior y operaciones sobre
    objetos invocables

  * "operator" --- Operadores estándar como funciones

* Acceso a archivos y directorios

  * "pathlib" --- Rutas de sistemas orientada a objetos

  * "os.path" --- Manipulaciones comunes de nombre de ruta

  * "fileinput" --- Iterar sobre líneas de múltiples flujos de entrada

  * "stat" --- Interpretación de los resultados de "stat()"

  * "filecmp"--- Comparaciones de Archivo y Directorio

  * "tempfile" --- Generar archivos y directorios temporales

  * "glob" --- Expansión del patrón de nombres de ruta de estilo Unix

  * "fnmatch" --- Coincidencia de patrones de nombre de archivos Unix

  * "linecache" — Acceso aleatorio a líneas de texto

  * "shutil" --- Operaciones de archivos de alto nivel

* Persistencia de datos

  * "pickle" --- Serialización de objetos Python

  * "copyreg" --- Registrar funciones de soporte de "pickle"

  * "shelve" --- Persistencia de objetos de Python

  * "marshal" --- Serialización interna de objetos Python

  * "dbm" --- Interfaces para "bases de datos" de Unix

  * "sqlite3" --- DB-API 2.0 interfaz para bases de datos SQLite

* Compresión de datos y archivado

  * "zlib" --- Compresión compatible con **gzip**

  * "gzip" --- Soporte para archivos **gzip**

  * "bz2" --- Soporte para compresión **bzip2**

  * "lzma" --- Compresión utilizando el algoritmo LZMA

  * "zipfile" --- Trabajar con archivos ZIP

  * "tarfile" --- Leer y escribir archivos tar

* Formatos de archivo

  * "csv" --- Lectura y escritura de archivos CSV

  * "configparser" --- *Parser* para archivos de configuración

  * "netrc" --- procesado del fichero netrc

  * "plistlib" --- Genera y analiza archivos ".plist" de Apple

* Servicios Criptográficos

  * "hashlib" --- Hashes seguros y resúmenes de mensajes

  * "hmac" --- *Hash* con clave para autenticación de mensajes

  * "secrets" --- Genera números aleatorios seguros para trabajar con
    secretos criptográficos

* Servicios genéricos del sistema operativo

  * "os" --- Interfaces misceláneas del sistema operativo

  * "io" --- Herramientas principales para trabajar con *streams*

  * "time" --- Acceso a tiempo y conversiones

  * "argparse" — Analizador sintáctico (*Parser*) para las opciones,
    argumentos y sub-comandos de la línea de comandos

  * "getopt" --- Analizador de estilo C para opciones de línea de
    comando

  * "logging" --- Instalación de logging para Python

  * "logging.config" --- Configuración de registro

  * "logging.handlers" --- Gestores de *logging*

  * "getpass" --- Entrada de contraseña portátil

  * "curses" --- Manejo de terminales para pantallas de celdas de
    caracteres

  * "curses.textpad"--- Widget de entrada de texto para programas de
    curses

  * "curses.ascii" --- Utilidades para los caracteres ASCII

  * "curses.panel" --- Una extensión de pila de panel para curses

  * "platform" --- Acceso a los datos identificativos de la plataforma
    subyacente

  * "errno" --- Símbolos estándar del sistema errno

  * "ctypes" --- Una biblioteca de funciones foráneas para Python

* Ejecución concurrente

  * "threading" --- Paralelismo basado en hilos

  * "multiprocessing" --- Paralelismo basado en procesos

  * "multiprocessing.shared_memory" --- Shared memory for direct
    access across processes

  * El paquete "concurrent"

  * "concurrent.futures" --- Lanzamiento de tareas paralelas

  * "subprocess" --- Gestión de subprocesos

  * "sched" --- Eventos del planificador

  * "queue" --- clase de cola sincronizada

  * "contextvars" --- Variables de Contexto

  * "_thread" --- API de bajo nivel para manejo de hilos

* Comunicación en redes y entre procesos

  * "asyncio" --- E/S Asíncrona

  * "socket" --- interfaz de red de bajo nivel

  * "ssl" ---Empaquetador o wrapper TLS/SSL para objetos de tipo
    socket

  * "select" --- Esperando la finalización de E/S

  * "selectors" — Multiplexación de E/S de alto nivel

  * "signal" --- Establece gestores para eventos asíncronos

  * "mmap" --- Soporte de archivos mapeados en memoria

* Manejo de Datos de Internet

  * "email" --- Un paquete de manejo de correo electrónico y MIME

  * "json" --- Codificador y decodificador JSON

  * "mailbox" --- Manipular buzones de correo en varios formatos

  * "mimetypes" --- Mapea nombres de archivo a tipos MIME

  * "base64" --- Codificaciones de datos Base16, Base32, Base64, y
    Base85

  * "binhex" --- Codificar y decodificar archivos binhex4

  * "binascii" --- Convertir entre binario y ASCII

  * "quopri" --- Codificar y decodificar datos MIME imprimibles entre
    comillas

* Herramientas Para Procesar Formatos de Marcado Estructurado

  * "html" --- Compatibilidad con el Lenguaje de marcado de hipertexto

  * "html.parser" --- Analizador simple de HTML y XHTML

  * "html.entities" --- Definiciones de entidades generales HTML

  * Módulos de procesamiento XML

  * "xml.etree.ElementTree" --- La API XML de ElementTree

  * "xml.dom" --- El *API* del Modelo de Objetos del Documento

  * "xml.dom.minidom" --- Implementación mínima del DOM

  * "xml.dom.pulldom" --- Soporte para la construcción parcial de
    árboles DOM

  * "XML.sax"--- Soporte para analizadores SAX2

  * "xml.sax.handler" --- Base classes for SAX handlers

  * "xml.sax.saxutils" --- Utilidades SAX

  * "xml.sax.xmlreader" --- Interfaz para analizadores XML

  * "xml.parsers.expat" --- Análisis rápido XML usando Expat

* Protocolos y soporte de Internet

  * "webbrowser" --- Controlador de navegador web conveniente

  * "wsgiref" --- Utilidades WSGI e implementación de referencia

  * "urllib" --- URL módulos de manipulación

  * "urllib.request" --- Biblioteca extensible para abrir URLs

  * "urllib.response" --- Clases de respuesta usadas por urllib

  * "urllib.parse" --- Analiza URL en componentes

  * "urllib.error" --- Clases de excepción lanzadas por urllib.request

  * "urllib.robotparser" ---  Analizador para robots.txt

  * "http" --- Módulos HTTP

  * "http.client" --- Cliente de protocolo HTTP

  * "ftplib" --- cliente de protocolo FTP

  * "poplib" --- Cliente de protocolo POP3

  * "imaplib" --- Protocolo del cliente IMAP4

  * "smtplib" --- Cliente de protocolo SMTP

  * "uuid" --- objetos UUID según **RFC 4122**

  * "socketserver" --- Un framework para servidores de red

  * "http.server" --- Servidores HTTP

  * "http.cookies" --- Gestión del estado HTTP

  * "http.cookiejar" --- Manejo de cookies para clientes HTTP

  * "xmlrpc" --- Módulos XMLRPC para cliente y servidor

  * "xmlrpc.client" --- acceso cliente XML-RPC

  * "xmlrpc.server" --- Servidores básicos XML-RPC

  * "ipaddress" --- Biblioteca de manipulación IPv4 / IPv6

* Servicios Multimedia

  * "wave" --- Leer y escribir archivos WAV

  * "colorsys" --- Conversiones entre sistemas de color

* Internacionalización

  * "gettext" --- Servicios de internacionalización multilingües

  * "locale" --- Servicios de internacionalización

* *Frameworks* de programa

  * "turtle" --- Gráficos con *Turtle*

  * "cmd" — Soporte para intérpretes orientados a línea de comandos

  * "shlex" --- Análisis léxico simple

* Interfaces gráficas de usuario con Tk

  * "tkinter" --- Interface de Python para Tcl/Tk

  * "tkinter.colorchooser" --- Diálogo de elección de color

  * "tkinter.font" --- Envoltorio de fuente Tkinter

  * Diálogos Tkinter

  * "tkinter.messagebox" --- Indicadores de mensajes de Tkinter

  * "tkinter.scrolledtext" --- Widget de texto desplazado

  * "tkinter.dnd" --- Soporte de arrastrar y soltar

  * "tkinter.ttk" --- Tk widgets temáticos

  * "tkinter.tix" --- Ampliación de widgets para Tk

  * IDLE

* Herramientas de desarrollo

  * "typing" --- Soporte para *type hints*

  * "pydoc" --- Generador de documentación y Sistema de ayuda en línea

  * Modo de desarrollo de Python

  * Efectos del modo de desarrollo de Python

  * Ejemplo de ResourceWarning

  * Ejemplo de error de descriptor de archivo incorrecto

  * "doctest" -- Prueba ejemplos interactivos de Python

  * "unittest" --- Infraestructura de tests unitarios

  * "unittest.mock" --- Biblioteca de objetos simulados

  * "unittest.mock" --- primeros pasos

  * 2to3 --- Automated Python 2 to 3 code translation

  * "test" --- Paquete de pruebas de regresión para Python

  * "test.support" --- Utilidades para el conjunto de pruebas de
    Python

  * "test.support.socket_helper" --- Utilidades para pruebas de socket

  * "test.support.script_helper" ---Utilidades para las pruebas de
    ejecución de Python

  * "test.support.bytecode_helper" --- Herramientas de apoyo para
    comprobar la correcta generación de bytecode

  * "test.support.threading_helper" --- Utilidades para pruebas con
    hilos

  * "test.support.os_helper" --- Utilidades para pruebas de sistemas
    operativos

  * "test.support.import_helper" --- Utilidades para pruebas de
    importación

  * "test.support.warnings_helper" --- Utilidades para pruebas de
    advertencias

* Depuración y perfilado

  * Tabla de auditoría de eventos

  * "bdb" --- Framework de depuración

  * "faulthandler" --- Volcar el rastreo de Python

  * "pdb" --- El Depurador de Python

  * Los perfiladores de Python

  * "timeit" --- Mide el tiempo de ejecución de pequeños fragmentos de
    código

  * "trace" --- Rastrear la ejecución de la declaración de Python

  * "tracemalloc"--- Rastrea la asignación de memoria

* Empaquetado y distribución de software

  * "distutils" --- Creación e instalación de módulos Python

  * "ensurepip" --- Ejecutando el instalador "pip"

  * "venv" --- Creación de entornos virtuales

  * "zipapp" ---  Gestiona archivadores zip ejecutables de Python

* Servicios en tiempo de ejecución de Python

  * "sys" --- Parámetros y funciones específicos del sistema

  * "sysconfig" --- Proporciona acceso a la información de
    configuración de Python

  * "builtins" --- Objetos incorporados

  * "__main__" --- Entorno de código de nivel máximo

  * "warnings" --- Control de advertencias

  * "dataclasses" --- Clases de datos

  * "contextlib" --- Utilidades para declaraciones de contexto "with"

  * "abc" --- Clases de Base Abstracta

  * "atexit" --- Gestores de Salida

  * "traceback" --- Imprimir o recuperar un seguimiento de pila

  * "__future__" --- Definiciones de declaraciones futuras

  * "gc" --- Interfaz del recolector de basura

  * "inspect" --- Inspeccionar objetos vivos

  * "site" --- Enlace (*hook*) de configuración específico del sitio

* Intérpretes de Python personalizados

  * "code" --- Clases básicas de intérpretes

  * "codeop" --- Compila código Python

* Importando módulos

  * "zipimport" --- Importar módulos desde archivos zip

  * "pkgutil" --- Utilidad de extensión de paquete

  * "modulefinder" --- Buscar módulos usados por un script

  * "runpy" --- Localización y ejecución de módulos *Python*

  * "importlib" --- La implementación de "import"

  * Usando "importlib.metadata"

* Servicios del lenguaje Python

  * "ast" --- Árboles de sintaxis abstracta

  * "symtable" --- Acceso a la tabla de símbolos del compilador

  * "token"--- Constantes usadas con árboles de sintaxis de Python

  * "keyword" --- Pruebas para palabras clave en Python

  * "tokenize" --- Conversor a tokens para código Python

  * "tabnanny" --- Detección de indentación ambigua

  * "pyclbr" --- Soporte para navegador de módulos Python

  * "py_compile`" --- Compila archivos fuente Python

  * "compileall" --- Bibliotecas de Python de compilación de bytes

  * "dis" --- Desensamblador para bytecode de Python

  * "pickletools" --- Herramientas para desarrolladores pickle

* Servicios Específicos para MS Windows

  * "msvcrt" --- Rutinas útiles del entorno de ejecución MS VC++

  * "winreg" --- Acceso al registro de Windows

  * :mod:'winsound' --- Interfaz de reproducción de sonido para
    Windows

* Servicios específicos de Unix

  * "posix" --- Las llamadas más comunes al sistema POSIX

  * "pwd" --- La base de datos de contraseñas

  * "grp" --- La base de datos de grupo

  * "termios" ---Control tty estilo POSIX

  * "tty" --- Funciones de control de terminal

  * "pty" --- Utilidades para Pseudo-terminal

  * "fcntl" --- Las llamadas a sistema "fcntl" y "ioctl"

  * "resource" --- Información sobre el uso de recursos

  * "syslog" --- Rutinas de la biblioteca syslog de Unix

* Módulos Reemplazados

  * "aifc" — Lee y escribe archivos AIFF y AIFC

  * "asynchat" --- Gestor de comandos/respuestas en *sockets*
    asíncronos

  * "asyncore" --- controlador de socket asincrónico

  * "audioop" --- Manipula datos de audio sin procesar

  * "cgi" --- Soporte de Interfaz de Entrada Común (CGI)

  * "cgitb" --- Administrador *traceback* para scripts CGI.

  * "chunk" --- Lee los datos de los trozos de IFF

  * "crypt" --- Función para verificar contraseñas Unix

  * :mod:'imghdr' --- Determinar el tipo de imagen

  * "imp" --- Acceda a *import* internamente

  * "mailcap" --- Manejo de archivos Mailcap

  * "msilib" --- Leer y escribir archivos *Microsoft Installer*

  * "nis" — Interfaz a Sun's NIS (Páginas amarillas)

  * "nntplib" — Protocolo de cliente NNTP

  * "optparse" --- Analizador sintáctico (parser) para opciones de
    línea de comandos

  * "ossaudiodev" --- Acceso a dispositivos de audio compatibles con
    OSS

  * "pipes" --- Interfaz para tuberías de shell

  * "smtpd" --- Servidor SMTP

  * "sndhdr" --- Determinar el tipo de archivo de sonido

  * "spwd" --- La base de datos de contraseñas ocultas

  * "sunau" --- Lectura y escritura de ficheros Sun AU

  * "telnetlib" --- cliente Telnet

  * "uu" --- Codifica y decodifica archivos UUEncode

  * "xdrlib" --- Codificar y decodificar datos XDR

* Consideraciones de seguridad
