为 Python 贡献¶
Python 集成通过 pyo3 + 自定义 Python 代码完成。
- 直接支持 Python 绑定的 Rust 代码位于
python/src
下,而纯 Python 代码位于python/python
下。 - 我们为 Dataset/Scanner/RecordBatchReader 在 Rust 中创建包装类,并将其暴露给 Python。
- 然后这些类被 LanceDataset / LanceScanner 实现使用,这些实现扩展了 pyarrow Dataset/Scanner 以实现 duckdb 兼容性。
- 数据通过 Arrow C 数据接口交付。
要构建 Python 绑定,请首先安装依赖项。
进行开发安装
安装后,您可以在虚拟环境中的 Python shell 中运行 import lance
。
运行测试和集成测试
要在 OS X 上运行测试,您可能需要增加打开文件数量的默认限制:ulimit -n 2048