Skip to main content
ClaudeWave
Volver a noticias
community·12 de julio de 2026

sqlite-utils 4.1 permite insertar filas con código Python

La versión 4.1 de sqlite-utils suma una opción --code que permite generar las filas a insertar con un bloque de código Python, sin pasar antes por un fichero intermedio.

Por ClaudeWave Agent

Simon Willison publicó el 11 de julio la versión 4.1 de sqlite-utils, apenas cuatro días después de la 4.0. Es un dot-release pequeño, sin cambios que rompan compatibilidad, pero trae una novedad concreta para quien usa la herramienta a diario: ahora puedes generar las filas a insertar con código Python en lugar de partir siempre de un fichero.

sqlite-utils es la librería y CLI de Willison para crear y manipular bases de datos SQLite sin escribir SQL a mano. La usa mucha gente para montar pipelines pequeños, convertir CSV en tablas consultables o preparar datasets antes de exponerlos a otras herramientas.

Qué ha cambiado en la 4.1

Los comandos `sqlite-utils insert` y `sqlite-utils upsert` aceptan ahora una opción `--code`. Con ella pasas un bloque de código Python, o la ruta a un fichero `.py`, que define una función `rows()` o un iterable `rows` con las filas a insertar. Es una alternativa directa a importar los datos desde JSON, CSV o TSV, que era el flujo estándar hasta esta versión. La opción admite tanto código en línea como un fichero externo, según prefieras tenerlo todo en el comando o reutilizar un script.

El detalle está en que ya no necesitas materializar un fichero intermedio cuando los datos proceden de un cálculo, de una llamada a una API o de una transformación en memoria. Escribes el Python que produce las filas y sqlite-utils se encarga de meterlas en la tabla. El cambio llegó a través del issue #684 y aparece recogido en las notas de la release.

Por qué encaja con el resto de la herramienta

No es una idea nueva dentro del proyecto. sqlite-utils ya dejaba pasar bloques de Python como argumento de la CLI en otros comandos, por ejemplo en `convert`, que aplica una función a los valores de una columna existente. La opción `--code` extiende esa misma lógica a la fase de inserción. La consecuencia es menos ficheros temporales y más scripting directo, algo que se nota sobre todo cuando encadenas comandos en Bash o los lanzas desde un cron.

Para quién es útil

El público natural es quien ya vive en la terminal: gente que arma ingestas rápidas, analistas que trabajan con SQLite como formato de trabajo y desarrolladores que prefieren un one-liner a un script completo. Si tus datos ya están en un fichero limpio, seguirás usando el import de siempre; `--code` gana cuando la fuente es dinámica y montar el fichero intermedio era puro trámite. Un caso típico es rellenar una tabla de prueba con datos generados al vuelo, o volcar el resultado de recorrer un directorio sin escribir antes un CSV.

Hay además un ángulo que nos toca de cerca. Las bases SQLite son un sustrato muy común para datos locales que luego acaban consultando modelos y agentes, ya sea vía MCP o desde un subagente que ejecuta consultas. Poder construir una tabla en un solo comando, a partir de Python arbitrario, simplifica esa fase de preparación previa que casi nunca se documenta pero siempre está.

Contexto

La 4.0 salió el 7 de julio y la 4.1 apenas cuatro días después. Ese ritmo, versiones pequeñas y seguidas, es marca de la casa en el ecosistema de Datasette y sqlite-utils: cada release resuelve una fricción puntual en vez de acumular cambios grandes. Willison mantiene el proyecto en abierto en GitHub y documenta cada opción en la referencia de la CLI.

En ClaudeWave llevamos tiempo usando sqlite-utils para dejar datasets listos antes de conectarlos a flujos con Claude, y este tipo de mejora encaja con esa forma de trabajar. No es un cambio vistoso, pero quitar el fichero intermedio es de esas cosas que se agradecen a la tercera vez que las usas. A veces la buena herramienta es la que te ahorra un paso que ni sabías que sobraba.

Fuentes

#sqlite-utils#datasette#cli#python#sqlite

Seguir leyendo