跳转到主要内容

Deephaven Python 客户端,用于处理时钟表

项目描述

Deephaven Python Ticking Package

pydeephaven-ticking 包允许从 Python 访问 Deephaven 的时钟数据。它扩展了 pydeephaven 包的功能,添加了订阅表并接收包含添加、删除和修改数据的更改通知的能力。它使用 Cython 在 Deephaven 的 C++ 库周围创建了一个薄包装器。

先决条件

Deephaven C++ 客户端(以及时钟 Python 客户端)定期在 Ubuntu 22.04 x86_64 上进行测试。此外,在 RHEL 8 和 Fedora 38(均为 x86_64)上已成功运行测试。预计未来将提供对 Windows 的支持。

安装

pydeephaven-ticking 可以通过 pip 或从源代码构建来安装。

pip

需要 x86_64 架构上的 Linux 操作系统才能通过 pip 安装。建议在 Python 虚拟环境(venv)中这种方式进行安装。

pip install pydeephaven-ticking

从源代码构建

如果从源代码构建,pydeephaven-ticking 还需要一个工作状态的 C++ 客户端安装。所有四个包(Deephaven 核心、pydeephavenpydeephaven-ticking 和 Deephaven C++ 客户端)都位于 deephaven-core 仓库中。假设您已将仓库检出至 ${DHROOT} 指定位置。

安装 C++ 客户端

首先,安装 Deephaven C++ 客户端。遵循 $DHROOT/cpp-client/README.md 中的说明。注意那里提到的支持的平台的限制。说明将要求您选择 C++ 客户端库及其依赖项的安装位置。为了本文件的说明,我们假设该位置由 ${DHCPP} 环境变量指定。

安装 pydeephaven

要安装 pydeephaven,请遵循 ${DHROOT}/py/client/README.md 中的说明。

这些说明将要求您创建一个 Python venv。安装该包后,您将继续在此使用该 venv。

构建 ticking Python 客户端

在 venv 中安装 Cython

如果您已退出 venv,请使用类似以下命令重新激活它

source ~/py/cython/bin/activate

然后运行

pip3 install cython

构建共享库

cd ${DHROOT}/py/client-ticking
# Ensure the DHCPP environment variable is set per the instructions above
rm -rf build dist  # Ensure we clean the remnants of any pre-existing build.
DEEPHAVEN_VERSION=$(../../gradlew :printVersion -q) CFLAGS="-I${DHCPP}/include" LDFLAGS="-L${DHCPP}/lib" python3 setup.py build_ext -i

安装 pydeephaven-ticking

使用以下命令构建 wheel

DEEPHAVEN_VERSION=$(../../gradlew :printVersion -q) python3 setup.py bdist_wheel

然后安装该包。注意:实际的 .whl 文件名可能因系统细节而异。

pip3 install --force --no-deps dist/pydeephaven_ticking-<x.y.z>-cp310-cp310-linux_x86_64.whl

需要使用 --force 标志来覆盖可能已存在的任何先前构建的包版本。使用 --no-deps 标志确保我们确实引用的是上述步骤中从源构建的 pydeephaven 包,而不是来自 PyPi 的一个。

测试库

在此目录中运行 venv 中的 python,并尝试以下 Python 示例程序

import pydeephaven as dh
import time
session = dh.Session() # assuming Deephaven Community Core is running locally with the default configuration
table = session.time_table(period=1000000000).update(formulas=["Col1 = i"])
listener_handle = dh.listen(table, lambda update : print(update.added()))
listener_handle.start()
# data starts printing asynchronously here
time.sleep(10)
listener_handle.stop()
session.close()

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅 生成分发存档的教程

构建分发

pydeephaven_ticking-0.36.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB 查看哈希)

上传时间: CPython 3.12 manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-0.36.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB 查看哈希)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-0.36.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB 查看哈希)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-0.36.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-0.36.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

由以下机构支持