Skip to main content

The Deephaven Python Client for Ticking Tables

Project description

Deephaven Python Ticking Package

The pydeephaven-ticking package enables access to ticking Deephaven data from Python. It extends the functionality of the pydeephaven package to add the ability to subscribe to tables and receive change notifications containing added, removed, and modified data. It uses Cython to create a thin wrapper around Deephaven's C++ library.

Prerequisites

The Deephaven C++ client (and ticking Python client) are tested regularly on Ubuntu 22.04 x86_64. Additionally, successful tests have been run on RHEL 8 and Fedora 38 (both on x86_64). Windows support is expected to be made available in the future.

Installation

pydeephaven-ticking can be installed with pip or by building from source.

pip

A Linux operating system on x86_64 architecture is required to install via pip. It's recommended to install this way in a Python virtual environment (venv).

pip install pydeephaven-ticking

Build from source

If building from source, pydeephaven-ticking also requires a working installation of the C++ client. All four packages (Deephaven Core, pydeephaven, pydeephaven-ticking, and the Deephaven C++ client) are present in the deephaven-core repository. It is assumed that you have the repository checked out at the location specified by ${DHROOT}.

Install the C++ client

First, install the Deephaven C++ client. Follow the instructions in $DHROOT/cpp-client/README.md. Note the restrictions on supported platforms mentioned there. The instructions will ask you to select a location for the installation of the C++ client library and its dependencies. For the purpose of this document we assume that location is specified in the ${DHCPP} environment variable.

Install pydeephaven

To install pydeephaven, follow the instructions in ${DHROOT}/py/client/README.md.

These instructions will require you to create a Python venv. After installing that package, you will continue to use that venv here.

Build the ticking Python client

Install Cython in the venv

If you've exited your venv, re-activate it with something like:

source ~/py/cython/bin/activate

Then run

pip3 install cython

Build the shared library:

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

Install pydeephaven-ticking

Build the wheel with

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

Then install the package. Note: the actual name of the .whl file may be different depending on system details.

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

The --force flag is required to overwrite any previously-built version of the package that might already be there. The --no-deps flag ensures that we are sure to refer to the pydeephaven package just built from the above steps, rather than one from PyPi.

Testing the library

Run python from the venv while in this directory, and try this sample Python program:

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()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pydeephaven_ticking-0.36.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded 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 view details)

Uploaded 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 view details)

Uploaded 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 view details)

Uploaded 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 view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

File details

Details for the file pydeephaven_ticking-0.36.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-0.36.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0712c5ffc6e0fcfd0b1839c619ffb3a533954a90e42b06ea30ca4fe2a3bd0758
MD5 4be292b96def51bf7e3234989e2b6f15
BLAKE2b-256 88e3e9b16e3a6e084c65dd4bf9a7f32cc971ce0463f125f8bf0f72a1e5485f77

See more details on using hashes here.

File details

Details for the file pydeephaven_ticking-0.36.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-0.36.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0daa3b73b113b341e35ba5b7ea0240190fc238a84d510bbae042ace11fbc103d
MD5 f90c666c67fe84e9a40b584234d305be
BLAKE2b-256 9404da6f57058de3ebf1955657801665101360ad9c9466a74d52decd8b156ef7

See more details on using hashes here.

File details

Details for the file pydeephaven_ticking-0.36.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-0.36.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff02f2d09eb72a8091830c3bb5020fbd35c7e822c9853cad3c79b57d9868aa8c
MD5 500e17ec1ad55630bcfad9ded980bdf7
BLAKE2b-256 f95938429867eba3f10e03ebc85ea1e365bdf85cb7d4e607c2081e586e43f2fb

See more details on using hashes here.

File details

Details for the file pydeephaven_ticking-0.36.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-0.36.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f95e7ac874371de579c6c75bb33bb4e3b0e26cbb54f63ba16190756902d1252a
MD5 5662410c9be008cde4b9b12fcc8d3cd5
BLAKE2b-256 2bd3c874d241d8cdd4a7cbf87c288f8753e8643287d524bf5e29e7b1c1ae271d

See more details on using hashes here.

File details

Details for the file pydeephaven_ticking-0.36.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-0.36.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a150126398d91b715c286ab3cee076841c53d6095f29cd46ef5a0d099c4f41a9
MD5 c9d33ddf4849dfe8962c33655e5617d8
BLAKE2b-256 2fc8c50c4fab4ea41f1a6079c3de0dce5dfd8e65253832110f4b736a8a6bb39a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page