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.34.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-0.34.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-0.34.4-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.34.4-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.34.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-0.34.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d800c7b88656f9a6c805a309ac8abd05fda95ebe619c2e78556a65cef8933716
MD5 e57dd183e4596f4f1415595c53b31a6f
BLAKE2b-256 8de722d815c2cad027330bfad07622dc278b140b6520f9d53673c4b2c4f14e34

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-0.34.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-ci.yml on deephaven/deephaven-core

Attestations:

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-0.34.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 006ef7ebbc3a0bca629d622c5fd085b1451d170e235b8ac8efee2a9535a52c77
MD5 233e5690462052b1b71f7bad0ccbdf6d
BLAKE2b-256 22f91df57ff45e2f3cfb1fb8c8379407a3bf1358c4aa922005eb850a10e54685

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-0.34.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-ci.yml on deephaven/deephaven-core

Attestations:

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-0.34.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae7f80bbb20dc19c67ca6cb2f43fee9dfc0d4154815675fd4d00a412faef87b8
MD5 cd401f244a55c1067cf542ac197b7671
BLAKE2b-256 844c518d10f5662253afafd5e4084c88465c257bbd88db9470e1e3c0b12fcb7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-0.34.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-ci.yml on deephaven/deephaven-core

Attestations:

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-0.34.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75ff339d01940c6e7de511872eb8f3ab69e4fb8dcb4fbef7c320807d7dc81f97
MD5 f1a839b2994d798da2922cd6bba2eca3
BLAKE2b-256 468c6881f3ad9a2f45c45fffdce51c2df06e8e9b0e513741d3197b5a8a4f9429

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-0.34.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-ci.yml on deephaven/deephaven-core

Attestations:

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-0.34.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a28d14e40e7954983aa66c7b5e5d3672812641938c28702a5dcbdcddfbbefc3
MD5 8c4bc620406674e0c74b566ea55869f2
BLAKE2b-256 ef64111dc17255ced8347e26f2de6e1dfd60d50df0534bf4f79910b51f51e287

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-0.34.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-ci.yml on deephaven/deephaven-core

Attestations:

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