跳到内容

为 Python 贡献

Python 集成通过 pyo3 + 自定义 Python 代码完成。

  1. 直接支持 Python 绑定的 Rust 代码位于 python/src 下,而纯 Python 代码位于 python/python 下。
  2. 我们为 Dataset/Scanner/RecordBatchReader 在 Rust 中创建包装类,并将其暴露给 Python。
  3. 然后这些类被 LanceDataset / LanceScanner 实现使用,这些实现扩展了 pyarrow Dataset/Scanner 以实现 duckdb 兼容性。
  4. 数据通过 Arrow C 数据接口交付。

要构建 Python 绑定,请首先安装依赖项。

pip install maturin

进行开发安装

cd python
maturin develop

安装后,您可以在虚拟环境中的 Python shell 中运行 import lance

运行测试和集成测试

make test
make integtest

要在 OS X 上运行测试,您可能需要增加打开文件数量的默认限制:ulimit -n 2048