Servicios genéricos del sistema operativo
*****************************************

Los módulos descritos en este capítulo proporcionan interfaces a las
características del sistema operativo que están disponibles en (casi)
todos los sistemas operativos, como archivos y un reloj. Las
interfaces se modelan, por norma general, según las interfaces Unix o
C, pero también están disponibles en la mayoría de los otros sistemas.
Esta es una visión general:

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

  * Nombres de archivos, argumentos de la línea de comandos y
    variables de entorno

  * Parámetros de proceso

  * Creación de objetos de tipo archivo

  * Operaciones de descriptores de archivos

    * Consultando las dimensiones de una terminal

    * Herencia de los descriptores de archivos

  * Archivos y directorios

    * Atributos extendidos de Linux

  * Gestión de proceso

  * Interfaz al planificador

  * Información miscelánea del sistema

  * Números al azar

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

  * Resumen

    * E/S Texto

    * E/S Binaria

    * E/S sin formato

  * Interfaz de módulo de alto nivel

  * Jerarquía de clases

    * Clases base E/S

    * Archivo sin formato E/S

    * *Streams* almacenados (búfer)

    * E/S Texto

  * Rendimiento

    * E/S Binaria

    * E/S Texto

    * Multihilo

    * Reentrada

* "time" --- Tiempo de acceso y conversiones

  * Las Funciones

  * Constantes de ID de reloj

  * Constantes de zona horaria

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

  * Ejemplo

    * Creando un analizador sintáctico (*parser*)

    * Añadiendo argumentos

    * Analizando argumentos

  * Objetos *ArgumentParser*

    * *prog*

    * uso

    * *description*

    * *epilog*

    * *parents*

    * *formatter_class*

    * *prefix_chars*

    * *fromfile_prefix_chars*

    * *argument_default*

    * *allow_abbrev*

    * *conflict_handler*

    * *add_help*

    * exit_on_error

  * El método *add_argument()*

    * *name or flags*

    * *action*

    * *nargs*

    * *const*

    * *default*

    * *type*

    * *choices*

    * *required*

    * *help*

    * *metavar*

    * *dest*

    * Las clases *Action*

  * El método *parse_args()*

    * Sintaxis del valor de la opción

    * Argumentos no válidos

    * Argumentos conteniendo "-"

    * Abreviaturas de los argumentos (coincidencia de prefijos)

    * Más allá de "sys.argv"

    * El objeto *Namespace*

  * Otras utilidades

    * Sub-comandos

    * Objetos *FileType*

    * Grupos de argumentos

    * Exclusión mutua

    * Valores por defecto del analizador

    * Mostrando la ayuda

    * Análisis parcial

    * Personalizando el análisis de archivos

    * Métodos de salida

    * Análisis entremezclado

  * Actualizar el código de *optparse*

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

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

  * Objetos Logger

  * Niveles de logging

  * Gestor de objetos

  * Objetos formateadores

  * Filtro de Objetos

  * Objetos LogRecord

  * Atributos LogRecord

  * Objetos LoggerAdapter

  * Seguridad del hilo

  * Funciones a nivel de módulo

  * Atributos a nivel de módulo

  * Integración con el módulo de advertencias

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

  * Funciones de configuración

  * Security considerations

  * Esquema del diccionario de configuración

    * Detalles del esquema del diccionario

    * Configuración incremental

    * Conexiones de objeto

    * Objetos definidos por el usuario

    * Acceso a objetos externos

    * Acceso a objetos internos

    * Resolución de importación e importadores personalizados

  * Formato de archivo de configuración

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

  * StreamHandler

  * FileHandler

  * NullHandler

  * WatchedFileHandler

  * BaseRotatingHandler

  * RotatingFileHandler

  * TimedRotatingFileHandler

  * SocketHandler

  * DatagramHandler

  * Gestor *SysLog* (*SysLogHandler*)

  * Gestor de eventos *NTELog* (NTEventLogHandler)

  * SMTPHandler

  * MemoryHandler

  * HTTPHandler

  * QueueHandler

  * QueueListener

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

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

  * Funciones

  * Objetos de ventana

  * Constantes

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

  * Objeto de caja de texto

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

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

  * Funciones

  * Objetos de Panel

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

  * Plataforma cruzada

  * Plataforma Java

  * Plataforma windows

  * macOS Platform

  * Plataformas Unix

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

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

  * tutorial de ctypes

    * Carga de bibliotecas de enlaces dinámicos

    * Acceder a las funciones de los dll cargados

    * Funciones de llamada

    * Tipos de datos fundamentales

    * Funciones de llamada, continuación

    * Funciones de llamada con sus propios tipos de datos
      personalizados

    * Especificar los tipos de argumentos requeridos (prototipos de
      funciones)

    * Tipos de retorno

    * Pasar los punteros (o: pasar los parámetros por referencia)

    * Estructuras y uniones

    * Alineación de estructura/unión y orden de bytes

    * Campos de bits en estructuras y uniones

    * Arreglos

    * Punteros

    * Conversiones de tipos

    * Tipos incompletos

    * Funciones de retrollamadas (*callback*)

    * Acceder a los valores exportados de los dlls

    * Sorpresas

    * Tipos de datos de tamaño variable

  * referencia ctypes

    * Encontrar bibliotecas compartidas

    * Cargando bibliotecas compartidas

    * Funciones foráneas

    * Prototipos de funciones

    * Funciones de utilidad

    * Tipos de datos

    * Tipos de datos fundamentales

    * Tipos de datos estructurados

    * Arreglos y punteros
