24 librerie Python per ogni sviluppatore Python

Vuoi una buona ragione per lo strepitoso successo del linguaggio di programmazione Python? Non guardare oltre l'enorme raccolta di librerie disponibili per Python, sia native che di terze parti. Con così tante librerie Python là fuori, però, non sorprende che alcune non ottengano tutta l'attenzione che meritano. Inoltre, i programmatori che lavorano esclusivamente in un dominio non sempre conoscono le chicche a loro disposizione per altri tipi di lavoro.

Qui ci sono 24 librerie Python che potresti aver trascurato ma che meritano sicuramente la tua attenzione. Queste gemme gestiscono la gamma di utilità, semplificando tutto, dall'accesso al file system, alla programmazione del database e al lavoro con i servizi cloud, alla creazione di app web leggere, alla creazione di GUI e al lavoro con immagini, ebook e file di Word e molto altro ancora. Alcune sono ben note, altre meno conosciute, ma tutte queste librerie Python meritano un posto nella tua cassetta degli attrezzi.

Apache Libcloud

Cosa fa Libcloud: accedi a più provider cloud tramite un'unica API coerente e unificata.

Perché usare Libcloud: se la descrizione sopra di Apache Libcloud non ti fa battere le mani per la gioia, allora non hai provato a lavorare con più cloud. Tutti i fornitori di servizi cloud amano fare le cose a modo loro, rendendo un meccanismo unificato per trattare con dozzine di fornitori un enorme risparmio di tempo e lenitivo per il mal di testa. Le API sono disponibili per calcolo, archiviazione, bilanciamento del carico e DNS, con supporto per Python 2.x e Python 3.x nonché PyPy, il compilatore JIT per Python che migliora le prestazioni.

Freccia

Cosa fa Arrow: gestione più pulita di date e orari in Python.

Perché usare Arrow: Gestire fusi orari, conversioni di date, formati di data e tutto il resto è già un mal di testa e mezzo. Aggiungi la libreria standard di Python per il lavoro di data / ora e avrai due grattacapi e mezzo.

Arrow offre quattro grandi vantaggi. Uno, Arrow è un sostituto immediato per il modulo datetime di Python, il che significa che la funzione comune chiama like .now()e .utcnow()funziona come previsto. Due, Arrow fornisce metodi per esigenze comuni come lo spostamento e la conversione dei fusi orari. Tre, Arrow fornisce informazioni di data / ora "umanizzate", come la possibilità di dire che qualcosa è accaduto "un'ora fa" o che accadrà "tra due ore" senza troppi sforzi. Quattro, Arrow può localizzare le informazioni di data / ora senza sudare.

Ecco

Cosa fa Behold:  robusto supporto per il debug in stile stampa in Python.

Perché usare Behold:  C'è un modo semplice per eseguire il debug in Python, o quasi qualsiasi linguaggio di programmazione per quella materia: inserire printistruzioni in linea . Ma mentre il debug di stampa è un gioco da ragazzi nei piccoli programmi, non è così facile ottenere risultati utili all'interno di grandi progetti multi-modulo.

Behold fornisce un toolkit per il debug contestuale tramite istruzioni print. Ti consente di imporre un aspetto uniforme all'output, contrassegnare i risultati in modo che possano essere ordinati tramite ricerche o filtri e fornire contesti tra i moduli in modo che le funzioni che hanno origine in un modulo possano essere debuggate correttamente in un altro. Behold gestisce molti scenari comuni specifici di Python come la stampa del dizionario interno di un oggetto, la rivelazione di attributi annidati e l'archiviazione e il riutilizzo dei risultati per il confronto in altri punti durante il processo di debug.

Nero

Cosa fa Black: formatta il codice Python secondo un insieme di regole rigido e quasi totalmente immutabile.

Perché usare il nero: i  formattatori di codice Python, come YAPF, tendono ad avere molte opzioni configurabili: lunghezza della riga, opzioni di divisione della riga, gestione delle virgole finali e così via. Il nero applica una serie coerente di valori predefiniti per quelle regole che non possono essere alterate. Il codice formattato risultante è il più coerente possibile tra le basi di codice e tra gli utenti, con le minori differenze possibili tra i file modificati.

Il nero richiede un po 'di tempo per abituarsi, specialmente se sei pignolo riguardo agli spazi bianchi verticali, alle dichiarazioni con annidamenti profondi (ad esempio, elenchi all'interno di elenchi) e altre opzioni di formattazione. Ma a lungo termine ti libera dal dover pensare alla formattazione, permettendoti di concentrarti sul tuo codice.

Bottiglia

Cosa fa Bottle: app web leggere e veloci.

Perché usare Bottle: quando vuoi mettere insieme un'API RESTful veloce o utilizzare le ossa nude di un framework web per creare un'app, Bottle capace ma piccola non ti dà più del necessario. Routing, modelli, accesso ai dati di richiesta e risposta, supporto per più tipi di server dal semplice vecchio CGI in poi e supporto per funzionalità più avanzate come WebSocket: è tutto qui. Anche la quantità di lavoro necessaria per iniziare è minima e il design di Bottle è estensibile in modo elegante quando sono necessarie funzioni più avanzate. 

Clic

Cosa fa Click:  consente di creare rapidamente interfacce della riga di comando per le app Python.

Perché usare Click: le  GUI sono convenienti, ma le CLI sono il vero potere. Tuttavia, la creazione di una robusta CLI non è affatto semplice e il set di strumenti predefinito per raccogliere e utilizzare le opzioni della riga di comando in Python è primitivo.

Click avvolge quei bit e pezzi in un'API di alto livello, di costruzione CLI. Se vuoi creare solo alcuni comandi di base, puoi farlo con un paio di righe di codice. Se desideri un comportamento più avanzato, come richiedere separatamente ulteriori informazioni su un parametro o derivare valori dalle variabili di ambiente, Click fa al caso tuo. Click supporta anche i colori del terminale tramite la  colorama libreria e può essere espanso con plug-in di terze parti.

EbookLib

Cosa fa EbookLib:  leggere e scrivere file .epub.

Perché utilizzare EbookLib: la  creazione di ebook in genere richiede la gestione di uno strumento della riga di comando o di un altro. EbookLib fornisce strumenti di gestione e API che semplificano il processo. Funziona con i file EPUB 2 e EPUB 3, con supporto Kindle in fase di sviluppo.

Fornisci le immagini e il testo (quest'ultimo in formato HTML) ed EbookLib può assemblare quei pezzi in un ebook completo di capitoli, sommario annidato, immagini, markup HTML e così via. Sono supportati anche i dati di copertina, dorso e foglio di stile. Un sistema di plug-in consente a terze parti di estendere i comportamenti della libreria.

Se non hai bisogno di tutto ciò che EbookLib ha da offrire, prova Mkepub. Mkepub racchiude le funzionalità di assemblaggio di ebook di base in una libreria di dimensioni di pochi kilobyte. Uno svantaggio minore di Mkepub è che richiede Jinja2, che a sua volta richiede la libreria MarkupSafe.

Appiccicoso

Cosa fa Gooey:  fornire a un programma Python basato su console una GUI nativa della piattaforma.

Perché usare Gooey:  Presentare agli utenti, in particolare agli utenti di file, un'interfaccia a riga di comando è uno dei modi migliori per scoraggiare l'uso della tua applicazione. A pochi, a parte il fanatico hardcore, piace capire quali opzioni passare e in quale ordine. Gooey accetta gli argomenti previsti dalla libreria argparse e li presenta agli utenti come un modulo GUI, tramite la libreria WxPython. Tutte le opzioni sono etichettate e visualizzate con controlli appropriati (come un menu a discesa per un argomento multi-opzione). È necessaria pochissima codifica aggiuntiva, un singolo include e un solo decoratore, per farlo funzionare, supponendo che tu stia già utilizzando argparse.

Invocare

Cosa fa Invoke: esecuzione remota Pythonic, ovvero eseguire attività di amministrazione utilizzando una libreria Python.

Perché usare Invoke: usare Python come sostituto delle comuni attività di scripting della shell ha un senso. Invoke fornisce un'API di alto livello per l'esecuzione di comandi della shell e la gestione delle attività della riga di comando come se fossero funzioni Python, consentendo di incorporare tali attività nel proprio codice o di costruirle con eleganza. Fai solo attenzione a non consentire che input non attendibili vengano passati così come sono a nessun comando della shell.

Nuitka

Cosa fa Nuitka:  compila Python in eseguibili C autonomi.

Perché usare Nuitka:  come Cython, Nuitka compila Python in C.Tuttavia, mentre Cython richiede la propria sintassi personalizzata per ottenere i migliori risultati e si concentra principalmente su applicazioni matematiche e statistiche, Nuitka funziona con qualsiasi programma Python così com'è, lo compila in C, e produce un eseguibile a file singolo, applicando le ottimizzazioni dove possibile lungo il percorso. Nuitka è ancora nelle sue fasi iniziali e molte delle ottimizzazioni pianificate devono ancora arrivare. Tuttavia, è un modo conveniente per trasformare uno script Python in un'app a riga di comando veloce.

Numba

Cosa fa Numba:  velocizza selettivamente le funzioni matematiche.

Perché usare Numba:  Il mondo Python include un'intera sottocultura di pacchetti per accelerare le operazioni matematiche. Ad esempio, NumPy funziona avvolgendo librerie C ad alta velocità in un'interfaccia Python e Cython compila Python in C con la digitazione opzionale per prestazioni accelerate. Ma Numba è facilmente il più conveniente, in quanto consente di accelerare selettivamente le funzioni Python con nient'altro che un decoratore. Per ulteriori aumenti di velocità, puoi utilizzare idiomi Python comuni per parallelizzare i carichi di lavoro o utilizzare le istruzioni SIMD o GPU.

Nota che puoi usare NumPy con Numba. Dopotutto, NumPy ha molti algoritmi pronti all'uso che non devono essere implementati da zero. Ma per piccoli algoritmi "kernel", Numba in molti casi supererà NumPy molte volte.

Openpyxl

Cosa fa Openpyxl:  legge, scrive e manipola file Excel.

Perché usare OpenPyxl:  chiedi a qualcuno di nominare tre strumenti che i cruncher utilizzano nel loro lavoro, è probabile che otterrai Python, R ed Excel, non necessariamente in quell'ordine. Excel non ha (ancora) la connettività Python nativa, ma i pacchetti di terze parti hanno colmato il divario in vari modi.

Openpyxl funziona modificando i file Excel   piuttosto che manipolando direttamente Excel. Con Openpyxl, puoi automatizzare la creazione di fogli di calcolo e cartelle di lavoro, generare formule, popolare celle con quelle formule ed eseguire molte altre operazioni. È inoltre possibile modificare le proprietà degli oggetti di Excel, come gli stili di cella e la formattazione condizionale. Chiunque trascorra molto tempo a fissare fogli di calcolo troverà qualcosa di utile qui.

Peewee

Cosa fa Peewee:  un piccolo ORM (mappatore relazionale a oggetti) che supporta SQLite, MySQL e PostgreSQL, con molte estensioni.

Perché usare Peewee:  Non tutti amano un ORM; alcuni preferirebbero lasciare la modellazione dello schema sul lato database e farla finita. Ma per gli sviluppatori che non vogliono toccare i database, un ORM ben costruito e discreto può essere una manna dal cielo. E per gli sviluppatori che non vogliono un ORM completo come SQL Alchemy, Peewee è perfetto.

I modelli Peewee sono facili da costruire, collegare e manipolare. Inoltre, molte funzioni comuni di manipolazione delle query, come l'impaginazione, sono integrate direttamente. Altre funzionalità sono disponibili come componenti aggiuntivi, comprese estensioni per altri database, strumenti di test e un sistema di migrazione dello schema, una funzionalità che anche chi odia ORM potrebbe imparare a amore. Si noti che il ramo Peewee 3.x (l'edizione consigliata) non è completamente compatibile con le versioni precedenti di Peewee.

Cuscino

Cosa fa Pillow:  elaborazione delle immagini senza dolore.

Perché usare Pillow: la  maggior parte dei Pythonistas che hanno eseguito l'elaborazione delle immagini dovrebbe avere familiarità con PIL (Python Imaging Library), ma PIL è pieno di carenze e limitazioni e viene aggiornato di rado. Pillow mira ad essere sia più facile da usare che  compatibile con il codice con PIL tramite modifiche minime. Sono incluse estensioni per parlare con le funzioni di imaging native di Windows e con il pacchetto Tkinter con interfaccia grafica Tcl / Tk di Python. Pillow è disponibile tramite GitHub o il repository PyPI.

Poesia

Cosa fa Poetry:  gestisce le dipendenze e il packaging dei tuoi progetti Python in modo di alto livello.

Perché usare Poetry:  In teoria non devi fare nulla per avviare un nuovo progetto Python tranne creare una directory vuota e riempirla con file .py. In pratica, specialmente per un progetto ambizioso, dovrai fare molto di più: creare un README, impostare una struttura di cartelle, dichiarare le tue dipendenze e così via. Fare tutto questo a mano è un mal di testa.

La poesia automatizza gran parte di questa configurazione e manutenzione. Corri poetry new per creare una nuova directory di progetto e un ambiente virtuale, precompilati con un assortimento di base di componenti. Dichiara le tue dipendenze utilizzando il formato di file pyprojec.toml di Python e Poetry le gestirà per te. I prodotti esistenti gestiti da Poetry possono avere le loro dipendenze installate, aggiornate e modificate automaticamente dalla riga di comando di Poetry. Poetry gestisce anche la pubblicazione su un repository remoto (come PyPI).

PyFilesystem

Cosa fa PyFilesystem:  un'interfaccia Pythonic a qualsiasi file system -  qualsiasi  file system.

Perché usare PyFilesystem:  L'idea fondamentale alla base di PyFilesystem non potrebbe essere più semplice: proprio come gli fileoggetti di Python astraggono un singolo file, gli FSoggetti di PyFilesystem astraggono un intero file system. Questo non significa nemmeno solo file system su disco. PyFilesystem supporta anche directory FTP, file system in memoria, file system per posizioni definite dal sistema operativo (come la directory utente) e persino combinazioni di quanto sopra sovrapposte l'una sull'altra.

Oltre a rendere più facile la scrittura di codice multipiattaforma che manipola i file, PyFilesystem elimina la necessità di mettere insieme script da parti disparate della libreria standard, principalmente  os e  io. Fornisce anche utilità che potrebbero essere altrimenti necessarie per creare da zero, come uno strumento per la stampa di viste ad albero adatte alla console di un file system.

Pygame

Cosa fa Pygame:  crea videogiochi o front-end di qualità da gioco in Python.