présentation

La version 4.0rc2 de sqlite-utils a été améliorée grâce à l'aide de Claude Fable, un modèle de codage. Cette amélioration a permis de résoudre plusieurs problèmes, notamment un bug critique dans la méthode delete_where() qui pouvait causer des pertes de données.

fonctionnement

La méthode delete_where() a été modifiée pour utiliser une transaction atomique, ce qui signifie que les modifications sont sauvegardées sur le disque dès la fin de l'appel de méthode. Cela élimine la nécessité d'appeler explicitement la méthode commit().

Le modèle de transaction de sqlite-utils a également été amélioré. Chaque méthode d'écriture dans la base de données (comme insert(), upsert(), update(), delete(), etc.) s'exécute dans sa propre transaction et la valide avant de retourner. Cela signifie que les modifications sont sauvegardées sur le disque dès la fin de l'appel de méthode.

db = sqlite_utils.Database("data.db")
db.table("news").insert({"headline": "Dog wins award"})  # La nouvelle ligne est déjà sauvegardée - pas besoin d'appeler commit()

analyse scientifique

L'utilisation de Claude Fable pour améliorer sqlite-utils a permis de résoudre plusieurs problèmes et de améliorer la documentation. Le modèle de transaction de sqlite-utils a été amélioré pour prendre en compte les connections avec l'option autocommit=True ou autocommit=False, ajoutée dans Python 3.12.

La revue de code effectuée par GPT-5.5 a également permis de détecter deux problèmes supplémentaires, notamment un problème avec la méthode db.query() qui pouvait causer des effets de bord inattendus.

db.query("update ...")

Ces améliorations ont été effectuées pour un coût estimé de 149,25 $, ce qui représente une fraction du coût total de développement de la version 4.0 de sqlite-utils.