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

Before installing this library, you will need to install the Deephaven Core C++ library and the pydeephaven python package. All three packages (Deephaven Core C++, pydeephaven, and pydeephaven-ticking) are present in the Deephaven Core GitHub repository. We assume you have checked out this repository at the location specified by ${DHROOT}.

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

To build on Windows, please see the file cpp-client/README-windows.md in this repository.

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.

According to the C++ build instructions, the 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.

# This assumes your venv is in $HOME/py/cython
source ~/py/cython/bin/activate

Then run

pip3 install cython

Build the shared library (Linux version)

cd ${DHROOT}/py/client-ticking
# Ensure the DHCPP environment variable is set per the instructions above
rm -rf build dist src/pydeephaven_ticking/_core.cpp # Ensure we clean the remnants of any pre-existing build.
DEEPHAVEN_VERSION=$(../../gradlew :printVersion -q) CPPFLAGS="-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>-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 tests

$ python3 -m unittest discover tests

Sample Python program

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

If you're not sure about the file name format, learn more about wheel file names.

pydeephaven_ticking-41.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-41.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-41.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-41.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pydeephaven_ticking-41.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file pydeephaven_ticking-41.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-41.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5e267e9ec1c9bb7abb41cb28f36a2a4e467a6c2f29d4e0afb8b02a58cd3d44d6
MD5 53dfd1ba2b0abd6c0fce8ce060826b78
BLAKE2b-256 8b526ca84036fbc804766709b87feca1df27d4c487537c2f428343c5eb8b0ec7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-41.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-41.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 134deb92c502e19d3deeebe15ec269dd6415eee5446f605fd357726a74cb9e2d
MD5 b856e73c6ba94cb460ec64f96001d5be
BLAKE2b-256 d3f0d647c1608d3a77d327d981281ee957e51e5b66c92c29bbdf7b6688dd5024

See more details on using hashes here.

Provenance

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

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-41.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 32c712244d1a6e6f6bc5046ed5f36370ba36b5cdc0f11a082ac92e5594b448c3
MD5 3d2ccdcb79a6043e277c8d2f614a3788
BLAKE2b-256 48e2ef733da77772f9df89fbf30f74083fe0e254f22afbad81ea9876df6552e6

See more details on using hashes here.

Provenance

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

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-41.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 39dd5d0d5fe8e687485083ba03d4eb2e88531b7ddd2ae80c69e7046475530367
MD5 3a2ccae392b4ea0ce30874299b177e2f
BLAKE2b-256 26ac5fbb067f12a00ba198b32db3609f7601a9abab2eef3c1653f8d24fc98d4d

See more details on using hashes here.

Provenance

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

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pydeephaven_ticking-41.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 43b28a97f1fe45f94fef9506fe0470942bc8a52bffcf28c51b8df94c280f967e
MD5 38bf715c60739c07d6ee853bbffd2ae8
BLAKE2b-256 c82624bbc78e39af7c4534fa17acdcb83ca84e3c7d1dc0c9f15c905709e4fc02

See more details on using hashes here.

Provenance

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

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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