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.7-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.7-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.7-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.7-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.7-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.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-41.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 13092666043119e600d139dd4c94fcc6289d00d7a5a2376947b773f6b21abf00
MD5 e3a7192aa1c1670bac2e001fcb279daf
BLAKE2b-256 85ec7d60ab2692e792251fd66db8970be57b3eb833bc61ca9f1571d661b9b7e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-41.7-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.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-41.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d42f79824aeee21f3537a3ff26151cdab2d7b97b507a9db1433c74c1733f8020
MD5 04b24087c09d320dd1ac037b0e668060
BLAKE2b-256 40a1d0fccb449da3d393db0afb1d051df7263a0158dbf3dc4559d67f6c330079

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-41.7-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.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-41.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a8d4550aea3248a70668c6fe46df209a3eb70fc060121256aee2e711c6f2b4dc
MD5 730f784d1e6a162652dfec4c9b0ca9d4
BLAKE2b-256 8d672a91d8331a5347d422e1dc6888a422cd02fb0d8dc0e8a58c99d3877bca69

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-41.7-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.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-41.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3b803a1b36facfe6cf6532c0d4d6a0a687ed62a4ae2694956b2d56f74e6bdbf1
MD5 a52d41fdd0e3e854c840c76d1c3feff1
BLAKE2b-256 e64600540f327031b89a1c928e18bb0f90deb9996e3f6fe0226052b547c1ca1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-41.7-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.7-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pydeephaven_ticking-41.7-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a41e8f0b85ca7877f849014d4d5cb19109001751ec8cb7c7f9a8faa934e4db7f
MD5 3207aba075b13ed77d4e097daea115db
BLAKE2b-256 613c5f136724cfc8dd71c60eb39928f5869c6640d955f29d58d04f2b1371c291

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydeephaven_ticking-41.7-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