datasette-enrichments-quickjs 来自 datasette

星标

README 源代码

datasette-enrichments-quickjs

PyPI Changelog Tests License

用于使用自定义 JavaScript 函数丰富数据的Datasette 数据富化功能

安装

将此插件安装在与 Datasette 相同的环境中。

datasette install datasette-enrichments-quickjs

使用方法

此富化插件允许您从表中选择行,并指定一个自定义 JavaScript 函数来为每行生成一个值,将该值存储在指定的列中,如果该列不存在则创建它。

代码在一个 QuickJS 沙箱中运行,每个函数执行的时间限制为 0.1 秒,内存限制为 4MB。

富化 JavaScript 函数看起来像这样

function enrich(row) {
    return row["title"] + "!";
}

函数的返回值将存储在您选择的输出列中。

除了选择一个输出列,您还可以让您的函数返回一个带有键值对的对象。

此示例选取一个名为 point 的列(其值类似于 37.7749,-122.4194),并将其拆分为 latitudelongitude 两列

function enrich(row) {
    const bits = row.point.split(",");
    return {
        "latitude": parseFloat(bits[0]),
        "longitude": parseFloat(bits[1])
    }
}

然后,此富化插件将为该函数返回的对象中的每个键在表中创建新列。

开发

要在本地设置此插件,首先拉取代码。然后创建一个新的虚拟环境

cd datasette-enrichments-quickjs
python3 -m venv venv
source venv/bin/activate

现在安装依赖项和测试依赖项

pip install -e '.[test]'

运行测试

pytest