Raw numpy scalar values get silently stored as corrupted BLOBs instead of being converted
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 75/100
Línea de trabajo
Observe la función jsonify_if_needed() en db.py para ver cómo se convierten los valores antes de la inserción. El problema es que los tipos escalares de numpy como np.int64 no se reconocen y se almacenan como binarios. Agregue manejo para tipos escalares de numpy verificando np.generic o usando .item() para extraer el valor nativo de Python. Pruebe ejecutando el script de reproducción proporcionado y verificando que la salida sea {'col': 5}.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
While working on #872, I found that passing raw numpy scalar values (e.g. np.int64(5), not run through pandas or .item()) directly into insert_all() doesn't get converted to a normal SQLite INTEGER/REAL — instead it silently stores garbage binary data as a BLOB. Repro:
python
import sqlite_utils, numpy as np
db = sqlite_utils.Database(memory=True)
db["t"].insert_all([{"col": np.int64(5)}])
print(list(db["t"].rows))
{'col': b'\x05\x00\x00\x00\x00\x00\x00\x00'} instead of {'col': 5}
This likely affects anyone using numpy arrays directly without pandas. Might be worth adding numpy-scalar handling to jsonify_if_needed() in db.py.
- Lenguaje dominante
- Python
- Estrellas
- 2.2k
- Forks
- 172
- Merge medio
- 9 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de simonw/sqlite-utils
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
simonw/sqlite-utils#872 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
simonw/sqlite-utils#857 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
simonw/sqlite-utils#849 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
simonw/sqlite-utils#588 · 4 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug documentation help wanted
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
simonw/sqlite-utils#493 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de simonw/sqlite-utils
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
spec-kitty/spec-kitty#5319 ·
Los mantenedores suelen responder en 1 día
-
backend::vllm diffusion multimodal
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
openai/openai-agents-python#5229 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día