Datasette 1.0a28 修复兼容性问题并新增测试自动清理功能
Simon Willison··作者 Simon Willison
关键信息
该修复解决了问题 #2691(回调参数名称处理),通过 pytest 插件实现了自动资源清理(#2692),并确保 database.close() 正确关闭写入连接(#2693)。
资讯摘要
Simon Willison 发布了 Datasette 1.0a28 来修复上一版本 1.0a27 引入的关键问题。一个主要问题是 execute_write_fn() 回调函数若使用非 'conn' 参数名会失败,现已解决。新添加的 datasette.close() 方法会在服务器停止时自动关闭所有数据库及相关资源。
此外,新增的 pytest 插件可确保在函数作用域 fixture 中创建的临时 Datasette 实例在测试结束后被清理,避免因文件描述符耗尽导致的问题——这是自 1.0a27 引入 is_temp_disk=True 后插件测试套件中常见的问题。大部分改动由 Claude Opus 4.7 实现。
资讯正文
2026年4月17日
我在将Datasette Cloud升级到1.0a27版本时,发现了一些由该版本alpha变更引发的意外破坏性问题。这个新的alpha版本直接修复了这些问题:
修复了在1.0a27中引入的一个兼容性错误,此前使用非conn参数名的execute_write_fn()回调函数会遇到错误。(#2691)现在database.close()方法也会关闭该数据库的写入连接。新增了一个datasette.close()方法,用于关闭与Datasette实例相关的所有数据库和资源。当服务器关闭时,此方法会自动调用。(#2693)Datasette现在包含一个pytest插件,它会在函数作用域的fixture中创建的临时实例以及测试过程中自动调用datasette.close()。详情请参见“Datasette实例的自动清理”。这有助于避免在编写于Datasette 1.0a27引入Database(is_temp_disk=True)功能之前的一些插件测试套件中耗尽文件描述符。(#2692)
修复了在1.0a27中引入的一个兼容性错误,此前使用非conn参数名的execute_write_fn()回调函数会遇到错误。(#2691)
现在database.close()方法也会关闭该数据库的写入连接。
新增了一个datasette.close()方法,用于关闭与Datasette实例相关的所有数据库和资源。当服务器关闭时,此方法会自动调用。(#2693)
Datasette现在包含一个pytest插件,它会在函数作用域的fixture中创建的临时实例以及测试过程中自动调用datasette.close()。详情请参见“Datasette实例的自动清理”。这有助于避免在编写于Datasette 1.0a27引入Database(is_temp_disk=True)功能之前的一些插件测试套件中耗尽文件描述符。(#2692)
本次发布的大部分更改都是使用Claude Code和新发布的Claude Opus 4.7实现的。
来源与参考
收录于 2026-04-18