24 bibliotecas de Python para cada desarrollador de Python

¿Quiere una buena razón para el éxito rotundo del lenguaje de programación Python? No busque más allá de la enorme colección de bibliotecas disponibles para Python, tanto nativas como de terceros. Sin embargo, con tantas bibliotecas de Python, no es de extrañar que algunas no reciban toda la atención que merecen. Además, los programadores que trabajan exclusivamente en un dominio no siempre conocen las ventajas disponibles para otros tipos de trabajo.

Aquí hay 24 bibliotecas de Python que puede haber pasado por alto, pero definitivamente merecen su atención. Estas gemas abarcan toda la gama de utilidad, simplificando todo, desde el acceso al sistema de archivos, la programación de bases de datos y el trabajo con servicios en la nube hasta la creación de aplicaciones web ligeras, la creación de GUI y el trabajo con imágenes, libros electrónicos y archivos de Word, y mucho más. Algunas son bien conocidas, otras menos conocidas, pero todas estas bibliotecas de Python merecen un lugar en su caja de herramientas.

Apache Libcloud

Qué hace Libcloud: Acceda a múltiples proveedores de nube a través de una API única, consistente y unificada.

Por qué usar Libcloud: si la descripción anterior de Apache Libcloud no te hace aplaudir de alegría, entonces no has intentado trabajar con múltiples nubes. A todos los proveedores de la nube les encanta hacer las cosas a su manera, lo que hace que un mecanismo unificado para tratar con docenas de proveedores sea un gran ahorro de tiempo y un alivio del dolor de cabeza. Las API están disponibles para procesamiento, almacenamiento, equilibrio de carga y DNS, con soporte para Python 2.xy Python 3.x, así como PyPy, el compilador JIT que mejora el rendimiento para Python.

Flecha

Qué hace Arrow: Manejo más limpio de fechas y horas en Python.

Por qué usar Arrow: lidiar con zonas horarias, conversiones de fecha, formatos de fecha y todo lo demás ya es un dolor de cabeza y medio. Agregue la biblioteca estándar de Python para el trabajo de fecha / hora, y obtendrá dos dolores de cabeza y medio.

Arrow ofrece cuatro grandes ventajas. Uno, Arrow es un reemplazo directo del módulo de fecha y hora de Python, lo que significa que las llamadas a funciones comunes dan me gusta .now()y .utcnow()funcionan como se esperaba. Dos, Arrow proporciona métodos para necesidades comunes como cambiar y convertir zonas horarias. Tres, Arrow proporciona información de fecha / hora “humanizada”, como por ejemplo, poder decir que algo sucedió “hace una hora” o que sucederá “en dos horas” sin mucho esfuerzo. Cuatro, Arrow puede localizar la información de fecha / hora sin sudar.

Mirad

Qué hace Behold:  Soporte sólido para la depuración de estilo de impresión en Python.

Por qué usar Behold:  Hay una forma sencilla de depurar en Python, o en casi cualquier lenguaje de programación para el caso: Insertar printdeclaraciones en línea . Pero si bien la depuración de impresión es una obviedad en programas pequeños, no es tan fácil obtener resultados útiles en proyectos grandes, extensos y de varios módulos.

Behold proporciona un conjunto de herramientas para la depuración contextual a través de declaraciones impresas. Le permite imponer un aspecto uniforme en la salida, etiquetar los resultados para que puedan ordenarse mediante búsquedas o filtros, y proporcionar contextos entre módulos para que las funciones que se originan en un módulo se puedan depurar correctamente en otro. Behold maneja muchos escenarios comunes específicos de Python, como imprimir el diccionario interno de un objeto, revelar atributos anidados y almacenar y reutilizar los resultados para compararlos en otros puntos durante el proceso de depuración.

Negro

Qué hace Black: Formatea el código Python de acuerdo con un conjunto de reglas estrictas y casi totalmente inmutables.

Por qué usar negro: los  formateadores de código Python, como YAPF, tienden a tener muchas opciones configurables: longitud de línea, opciones de división de línea, manejo de comas finales, etc. El negro aplica un conjunto coherente de valores predeterminados para aquellas reglas que no se pueden modificar. El código formateado resultante es lo más consistente posible en las bases de código y entre los usuarios, con la menor cantidad posible de diferencias entre los archivos editados.

El negro toma un tiempo para acostumbrarse, especialmente si es quisquilloso con los espacios en blanco verticales, declaraciones con anidamientos profundos (por ejemplo, listas dentro de listas) y otras opciones de formato. Pero a la larga te libera de tener que pensar en formatear, permitiéndote concentrarte en tu código.

Botella

Qué hace Bottle: Aplicaciones web ligeras y rápidas.

Por qué usar Bottle: cuando desea crear una API RESTful rápida o usar lo básico de un marco web para crear una aplicación, Bottle, capaz pero diminuta, no le brinda más de lo que necesita. Enrutamiento, plantillas, acceso a datos de solicitud y respuesta, soporte para múltiples tipos de servidor desde CGI simple en adelante y soporte para funciones más avanzadas como WebSockets: todo está aquí. La cantidad de trabajo necesario para comenzar es igualmente mínima, y ​​el diseño de Bottle es elegantemente extensible cuando se necesitan funciones más avanzadas. 

Hacer clic

Qué hace Click: le  permite crear rápidamente interfaces de línea de comandos para aplicaciones Python.

Por qué usar Click: Las  GUI son convenientes, pero las CLI son donde está el poder real. Sin embargo, construir una CLI robusta no es fácil, y el conjunto de herramientas predeterminado para recopilar y usar opciones de línea de comandos en Python es primitivo.

Click envuelve esos bits y piezas en una API de construcción CLI de alto nivel. Si solo desea crear algunos comandos básicos, puede hacerlo con un par de líneas de código. Si desea un comportamiento más avanzado, como solicitar por separado más información sobre un parámetro o derivar valores de variables de entorno, Click lo tiene cubierto. Click también admite colores de terminal a través de la  colorama biblioteca y se puede ampliar con complementos de terceros.

EbookLib

Qué hace EbookLib:  Leer y escribir archivos .epub.

Por qué usar EbookLib: la  creación de libros electrónicos generalmente requiere la manipulación de una herramienta de línea de comandos u otra. EbookLib proporciona herramientas de gestión y API que simplifican el proceso. Funciona con archivos EPUB 2 y EPUB 3, con soporte para Kindle en desarrollo.

Proporcione las imágenes y el texto (este último en formato HTML), y EbookLib puede ensamblar esas piezas en un libro electrónico completo con capítulos, tabla de contenido anidada, imágenes, marcado HTML, etc. También se admiten los datos de portada, lomo y hoja de estilo. Un sistema de complemento permite a terceros ampliar los comportamientos de la biblioteca.

Si no necesita todo lo que EbookLib tiene para ofrecer, pruebe Mkepub. Mkepub incluye la funcionalidad básica de ensamblaje de libros electrónicos en una biblioteca que tiene solo unos pocos kilobytes de tamaño. Un pequeño inconveniente de Mkepub es que requiere Jinja2, que a su vez requiere la biblioteca MarkupSafe.

Pegajoso

Qué hace Gooey:  Proporciona a un programa Python basado en consola una GUI nativa de la plataforma.

Por qué usar Gooey:  Presentar a los usuarios, especialmente a los usuarios de base, con una interfaz de línea de comandos es una de las mejores formas de desalentar el uso de su aplicación. Pocos, aparte del geek incondicional, les gusta descubrir qué opciones pasar y en qué orden. Gooey toma los argumentos esperados por la biblioteca argparse y los presenta a los usuarios como una forma GUI, a través de la biblioteca WxPython. Todas las opciones están etiquetadas y se muestran con los controles apropiados (como un menú desplegable para un argumento de múltiples opciones). Se necesita muy poca codificación adicional, una sola inclusión y un solo decorador, para que funcione, asumiendo que ya está usando argparse.

Invocar

Qué hace Invoke: ejecución remota de Pythonic, es decir, realizar tareas de administración utilizando una biblioteca de Python.

Por qué usar Invoke: usar Python como reemplazo de las tareas comunes de secuencias de comandos de shell tiene mucho sentido. Invoke proporciona una API de alto nivel para ejecutar comandos de shell y administrar tareas de línea de comandos como si fueran funciones de Python, lo que le permite incrustar esas tareas en su propio código o construir elegantemente alrededor de ellas. Solo tenga cuidado de no permitir que la entrada que no es de confianza se pase tal cual a cualquier comando de shell.

Nuitka

Qué hace Nuitka:  compila Python en ejecutables C autónomos.

Por qué usar Nuitka: al  igual que Cython, Nuitka compila Python en C. Sin embargo, mientras que Cython requiere su propia sintaxis personalizada para obtener mejores resultados y se enfoca principalmente en aplicaciones matemáticas y estadísticas, Nuitka trabaja con cualquier programa Python tal cual, lo compila en C, y produce un ejecutable de un solo archivo, aplicando optimizaciones donde puede en el camino. Nuitka todavía se encuentra en sus primeras etapas y muchas de las optimizaciones planificadas aún están por llegar. Sin embargo, es una forma conveniente de convertir un script de Python en una rápida aplicación de línea de comandos.

Numba

Lo que hace Numba: Acelera de forma  selectiva las funciones intensivas en matemáticas.

Por qué usar Numba:  El mundo de Python incluye toda una subcultura de paquetes para acelerar las operaciones matemáticas. Por ejemplo, NumPy funciona envolviendo bibliotecas C de alta velocidad en una interfaz Python, y Cython compila Python en C con escritura opcional para un rendimiento acelerado. Pero Numba es fácilmente el más conveniente, ya que permite que las funciones de Python se aceleren selectivamente con nada más que un decorador. Para aumentar la velocidad, puede usar modismos comunes de Python para paralelizar cargas de trabajo o usar instrucciones SIMD o GPU.

Tenga en cuenta que puede usar NumPy con Numba. Después de todo, NumPy tiene muchos algoritmos listos para usar que no necesitan implementarse desde cero. Pero para los algoritmos de "kernel" pequeños, Numba en muchos casos superará a NumPy muchas veces.

Openpyxl

Qué hace Openpyxl:  lee, escribe y manipula archivos de Excel.

Por qué usar OpenPyxl:  Pídale a alguien que nombre tres herramientas que los analizadores de números usan en su trabajo, lo más probable es que obtenga Python, R y Excel, no necesariamente en ese orden. Excel no tiene (todavía) conectividad nativa de Python, pero los paquetes de terceros han cerrado la brecha de varias maneras.

Openpyxl funciona modificando archivos de Excel en   lugar de manipular Excel directamente. Con Openpyxl, puede automatizar la creación de hojas de cálculo y libros de trabajo, generar fórmulas, completar celdas con esas fórmulas y realizar muchas otras operaciones. También puede cambiar las propiedades de los objetos de Excel, como los estilos de celda y el formato condicional. Cualquiera que pase un tiempo considerable mirando hojas de cálculo encontrará algo útil aquí.

Peewee

Lo que hace Peewee:  un pequeño ORM (mapeador relacional de objetos) que admite SQLite, MySQL y PostgreSQL, con muchas extensiones.

Por qué usar Peewee:  No todo el mundo ama un ORM; algunos prefieren dejar el modelado de esquemas en el lado de la base de datos y terminar con él. Pero para los desarrolladores que no quieren tocar bases de datos, un ORM bien construido y discreto puede ser una bendición. Y para los desarrolladores que no quieren un ORM tan completo como SQL Alchemy, Peewee es ideal.

Los modelos Peewee son fáciles de construir, conectar y manipular. Además, muchas funciones comunes de manipulación de consultas, como la paginación, están integradas. Hay más características disponibles como complementos, incluidas extensiones para otras bases de datos, herramientas de prueba y un sistema de migración de esquemas, una característica que incluso un enemigo de ORM podría aprender a amor. Tenga en cuenta que la rama Peewee 3.x (la edición recomendada) no es completamente compatible con versiones anteriores de Peewee.

Almohada

Qué hace Pillow:  Procesamiento de imágenes sin dolor.

Por qué usar Pillow: la  mayoría de los Pythonistas que han realizado procesamiento de imágenes deberían estar familiarizados con PIL (Biblioteca de imágenes de Python), pero PIL está plagado de defectos y limitaciones, y se actualiza con poca frecuencia. Pillow pretende ser más fácil de usar y  compatible con el código de PIL mediante cambios mínimos. Se incluyen extensiones para hablar con las funciones nativas de imágenes de Windows y el paquete GUI de Tkinter respaldado por Tcl / Tk de Python. Pillow está disponible a través de GitHub o el repositorio de PyPI.

Poesía

Qué hace Poetry:  administra las dependencias y el empaquetado de sus proyectos de Python de una manera de alto nivel.

Por qué usar Poetry:  en teoría, no tiene que hacer nada para iniciar un nuevo proyecto de Python, excepto crear un directorio vacío y llenarlo con archivos .py. En la práctica, especialmente para un proyecto ambicioso, necesitará hacer mucho más: crear un archivo README, configurar una estructura de carpetas, declarar sus dependencias, etc. Hacer todo esto a mano es un dolor de cabeza.

Poetry automatiza gran parte de esta configuración y mantenimiento. Ejecute poetry new para crear un nuevo directorio de proyectos y un entorno virtual, precargado con una variedad básica de componentes. Declare sus dependencias usando el propio formato de archivo pyprojec.toml de Python, y Poetry las administrará por usted. Los productos administrados por Poetry existentes pueden tener sus dependencias instaladas, actualizadas y modificadas automáticamente desde la línea de comandos de Poetry. Poetry también maneja la publicación en un repositorio remoto (como PyPI).

PyFilesystem

Qué hace PyFilesystem:  una interfaz Pythonic para cualquier sistema de archivos,  cualquier  sistema de archivos.

Por qué usar PyFilesystem:  La idea fundamental detrás de PyFilesystem no podría ser más simple: así como los fileobjetos de Python abstraen un solo archivo, los FSobjetos de PyFilesystem abstraen un sistema de archivos completo. Esto tampoco significa solo sistemas de archivos en disco. PyFilesystem también admite directorios FTP, sistemas de archivos en memoria, sistemas de archivos para ubicaciones definidas por el sistema operativo (como el directorio de usuario) e incluso combinaciones de los anteriores superpuestos entre sí.

Además de facilitar la escritura de código multiplataforma que manipula archivos, PyFilesystem evita la necesidad de improvisar scripts de partes dispares de la biblioteca estándar, principalmente  os y  io. También proporciona utilidades que, de otro modo, sería necesario crear desde cero, como una herramienta para imprimir vistas de árbol de un sistema de archivos compatibles con la consola.

Pygame

Lo que hace Pygame:  Crea videojuegos, o interfaces con calidad de juego, en Python.