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 核心、pydeephaven
、pydeephaven-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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0712c5ffc6e0fcfd0b1839c619ffb3a533954a90e42b06ea30ca4fe2a3bd0758 |
|
MD5 | 4be292b96def51bf7e3234989e2b6f15 |
|
BLAKE2b-256 | 88e3e9b16e3a6e084c65dd4bf9a7f32cc971ce0463f125f8bf0f72a1e5485f77 |
pydeephaven_ticking-0.36.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0daa3b73b113b341e35ba5b7ea0240190fc238a84d510bbae042ace11fbc103d |
|
MD5 | f90c666c67fe84e9a40b584234d305be |
|
BLAKE2b-256 | 9404da6f57058de3ebf1955657801665101360ad9c9466a74d52decd8b156ef7 |
pydeephaven_ticking-0.36.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ff02f2d09eb72a8091830c3bb5020fbd35c7e822c9853cad3c79b57d9868aa8c |
|
MD5 | 500e17ec1ad55630bcfad9ded980bdf7 |
|
BLAKE2b-256 | f95938429867eba3f10e03ebc85ea1e365bdf85cb7d4e607c2081e586e43f2fb |
pydeephaven_ticking-0.36.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f95e7ac874371de579c6c75bb33bb4e3b0e26cbb54f63ba16190756902d1252a |
|
MD5 | 5662410c9be008cde4b9b12fcc8d3cd5 |
|
BLAKE2b-256 | 2bd3c874d241d8cdd4a7cbf87c288f8753e8643287d524bf5e29e7b1c1ae271d |
pydeephaven_ticking-0.36.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a150126398d91b715c286ab3cee076841c53d6095f29cd46ef5a0d099c4f41a9 |
|
MD5 | c9d33ddf4849dfe8962c33655e5617d8 |
|
BLAKE2b-256 | 2fc8c50c4fab4ea41f1a6079c3de0dce5dfd8e65253832110f4b736a8a6bb39a |