Python è un linguaggio molto versatile e viene sfruttato in decine di ambienti e settori diversi. Ovviamente Python può essere molto utile in contesti professionali, ma risulta essere l'ideale anche per progetti "amatoriali". A questo proposito oggi presenteremo 5 librerie per lo sviluppo di progetti non necessariamente destinati al mercato, magari per dare sfogo alla curiosità o per seguire un hobby.
Dataset
Partiamo da Dataset, questa libreria si occupa di salvare i dati in un database in modo semplice e veloce. Sostanzialmente è un'API che semplifica il lavoro di catalogazione dei dati da suddividere successivamente, anche tramite altri tool. Dataset è stato realizzato basandosi su SQLAlchemy, un Python SQL toolkit ed Object Relational Mapper, se si ha dimestichezza con tale tool non si avranno dunque problemi ad usare Dataset. Le caratteristiche chiave della libreria sono riassumibili in:
- schema automatico: se viene scritta una tabella o una colonna che non esiste nel database, essa verrà creata automaticamente.
- Upsert: i record vengono creati o aggiornati a seconda che sia possibile trovare una versione esistente.
- Supporto agli helper per le query semplici come tutte le righe in una tabella o tutti i valori distinti attraverso un insieme di colonne.
- Essendo costruito su SQLAlchemy, il set di dati funziona con tutti i principali database come: SQLite, PostgreSQL e MySQL.
Beautiful Soup
Andiamo adesso su Beautiful Soup, si tratta di un estrattore di informazioni dalle pagine HTML. Lavora bene anche con i file XML, che in alcuni contesti potrebbero risultare poco leggibili e con questo tool è possibile sistemarli al meglio. Beautiful Soup risulta molto utile nel momento in cui si vuole trasformare una pagina HTML non strutturata in una strutturata. Questo tool si basa sui noti parser Python lxml e html5lib, questo consente di provare diverse strategie di analisi o di diminuire il tempo per l'estrazione dei dati. Ecco alcune delle sue caratteristiche in breve:
- fornisce out-of-the-box dei metodi e idiomi Python per navigare, cercare e modificare un parse tree.
- Conversione automatica dei documenti in Unicode o UTF-8;
Click
È il turno di Click (Command Line Interface Creation Kit), serve per realizzare delle piccole command-line utility. Questa API funziona tramite dei semplici pattern che permettono l'implementazione di utility CLI complete, partendo da semplici script Python. Click è estremamente configurabile e serve davvero poco codice per completare l'utility desiderata. Il suo team infatti l'ha concepita per aiutare lo sviluppatore durante la creazione del proprio progetto Python. Click si può racchiudere in tre feature:
- annidamento automatico ed arbitrario dei comandi.
- Generazione automatica delle pagine di supporto.
- Supporto al Lazy loading dei sottocomandi in fase di esecuzione.
Pluggy
Passiamo a Pluggy, questa libreria consente di implementare un plugin system in un'applicazione Python, cosi da permettere di estendere le funzionalità di un Tool tramite delle semplici estensioni. Pluggy è il core del plugin management ed hook calling del progetto pytest. Lo stesso pytest è l'unione di più di set di Pluggy plugin che vengono invocati in sequenza rispettando un determinato protocollo.
Pluggy consente agli utenti di estendere o modificare il comportamento di un programma host installando un plug-in per quel determinato programma. Il codice del plugin verrà eseguito come parte della normale esecuzione del programma, modificando o migliorando alcuni aspetti di esso. In sostanza, Pluggy abilita l'hook delle funzioni in modo da poter costruire sistemi "modulari". Pluggy gestisce:
- le hook specification che definiscono le firme delle chiamate fornite dall'host.
- Le implementazioni degli hook fornite dai plugin registrati;
- Le chiamante hook - un loop di chiamata, attivate in corrispondenza delle posizioni del programma appropriate nell'host, che invoca le implementazioni e raccoglie i risultati.
Datasette
Chiudiamo questo articolo con Datasette, questo tool si occupa di convertire i file CSV. Datasette dispone di numerose feature, come ad esempio la possibilità di creare mappe interattive, e può essere facilmente inserito in un container o una Web App. In particolare Datasette permette di creare delle read-only JSON API istantanee per gli SQLite database.
Datasette è molto semplice da installare:
pip3 install datasette
e anche da utilizzare:
datasette serve path/to/database.db
Questo comando avvierà un web server sulla porta 8001, "serve" è il comando di default e se lo si desidera è possibile anche ometterlo.