Sabato 24 ottobre 2026
L’edizione di oggi
Millebit
AI · Software · QA
Il segnale, non il rumore.

Gli articoli di Millebit sono scritti con l’intelligenza artificiale a partire da fonti citate in ogni pezzo. Come lavoriamo

Sviluppo software

sqlite-utils 4.1 aggiunge --code per generare righe e --type per forzare tipi

Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.

La release 4.1 introduce l'opzione --code per passare blocchi Python che producono righe e --type per salvare colonne con il tipo desiderato.

Illustrazione generata con l’intelligenza artificiale

sqlite-utils 4.1 introduce due opzioni nella CLI: --code per generare righe con Python e --type per imporre i tipi di colonna in fase di creazione tabella1.

Il post su simonwillison.net, datato 11 luglio 2026, spiega che insert e upsert ora accettano --code. L’opzione prende un blocco di Python passato inline oppure il percorso a un file .py. Il codice deve esporre una funzione rows() o un iterable rows che producano i record. La novità risponde all’issue #6841.

Esempio nel post: sqlite-utils insert data.db creatures --code ' def rows(): yield {"id": 1, "name": "Cleo"} yield {"id": 2, "name": "Suna"} ' --pk id Il comando genera due righe dalla CLI e imposta la chiave primaria con --pk id. La stessa sintassi vale con upsert1.

Lo strumento già accettava blocchi di codice in altri comandi. Per convert, l’esempio è: sqlite-utils convert content.db articles headline ' def convert(value): return value.upper()' Permettere a blocchi di Python di generare righe nuove viene descritto come “una ovvia estensione” di quel modello1.

Seconda novità: le subcommand insert e upsert accettano ora --type column-name type. L’opzione forza il tipo della colonna quando sqlite-utils crea la tabella, evitando l’inferenza automatica. Il post cita il caso di CSV o TSV con codici postali. Possono sembrare numeri, ma conviene salvarli come TEXT per preservare gli zeri iniziali. Il riferimento è l’issue #1311.

L’autore definisce la richiesta “di lunga data” e nota che l’implementazione è stata semplice. L’effetto pratico: si controlla il risultato fin dall’inserimento, senza aggiustamenti sui tipi a posteriori1.

Le due aggiunte si inseriscono nel solco della CLI di sqlite-utils, che consente di iniettare logica Python nei comandi per trasformare o creare dati. Con --code si possono produrre righe al volo senza scrivere script separati o doverle importare. Con --type si eliminano ambiguità comuni nei dataset delimitati, come numeri che in realtà devono restare stringhe testuali1.

Il post riporta esempi minimali e link alle issue che hanno guidato le modifiche. Per chi già usa convert con funzioni inline, la stessa ergonomia si estende a insert e upsert. Per chi importa CSV/TSV, la possibilità di bloccare il tipo al momento giusto riduce sorprese in lettura e query successive1.

Chiusura concreta nel testo: le due opzioni coprono casi quotidiani, generare dati programmaticamente e fissare i tipi, e arrivano direttamente da richieste tracciate nelle issue #684 e #1311.

Fonti

  1. sqlite-utils 4.1 Simon Willison · 12 luglio 2026
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici

Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:

  • Fedeltà alle fonti. Un secondo passaggio toglie ogni affermazione che le fonti non sostengono.
  • Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale.
  • Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica.

I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.

Come funziona Millebit, nel dettaglio →

Hai trovato un errore? Segnalacelo
Tipo di segnalazione

Leggiamo ogni segnalazione. Le correzioni fatte sono elencate in Correzioni. L’email, se la lasci, serve solo a risponderti.