Skip to main content

nominal-streaming Python Bindings

nominal-streaming is a thin python wrapper around the existing nominal-streaming rust crate. Usage semantics remain largely the same, but with some slight alterations to allow for a more pythonic interface.

The library aims to balance three concerns:

  1. Data should exist in-memory only for a limited, configurable amount of time before it's sent to Core.
  2. Writes should fall back to disk if there are network failures.
  3. Backpressure should be applied to incoming requests when network throughput is saturated.

This library streams data to Nominal Core, to a file, or to Nominal Core with a file as backup (recommended to protect against network failures). It also provides configuration to manage the tradeoff between above listed concerns.

[!WARNING] This library is still under active development and may make breaking changes.

Usage example: streaming from memory to Nominal Core with file fallback

import pathlib
import time

from nominal.core import NominalClient
from nominal_streaming import NominalDatasetStream, PyNominalStreamOpts

if __name__ == "__main__":
    num_points = 100_000
    stream = (
        NominalDatasetStream(
            auth_header="<api key>",
            opts=PyNominalStreamOpts(),
        )
        .enable_logging("info") # can set debug, warn, etc.
        .with_core_consumer("<dataset rid>")
        .with_file_fallback(pathlib.Path("local_fallback.avro"))
    )

    with stream:
        # Stream 100_000 live readings (made up values)
        for idx in range(num_points):
            time_ns = int(time.time() * 1e9)
            value = (idx % 50) + 0.5
            stream.enqueue("channel_name", time_ns, value, tags={"tag_key": "tag_value"})

        # Stream 100_000 points in one batch
        start_time = int(time.time() * 1e9)
        timestamp_offsets = int(1e9 / 1600)
        timestamps = [start_time + timestamp_offsets * idx for idx in range(num_points)]
        values = [(idx % 50) + 0.5 for idx in range(num_points)]
        stream.enqueue_batch(
            "channel_name",
            timestamps,
            values,
            tags={"tag_key": "tag_value"}
        )

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.

nominal_streaming-0.9.2-cp310-abi3-win_amd64.whl (4.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_armv7l.whl (3.5 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

nominal_streaming-0.9.2-cp310-abi3-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

Details for the file nominal_streaming-0.9.2-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for nominal_streaming-0.9.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5fc156e1dbb5467e9ecf893d64a1b1c28f7d8dcd0001cd80287f670498f075a2
MD5 243ff4b2a92edcb5083bf1c31ccea679
BLAKE2b-256 4867e66bb9f8667a2ce70681b79807aed181a530fde0c50c3e0924a1e3ab2e43

See more details on using hashes here.

File details

Details for the file nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 40772f5749b32372d5e9855d43ec7cf0429f964243c061e0cebc6eec99096828
MD5 d77312db91d61ba2dd7943e76a1adcb4
BLAKE2b-256 874476287d88c8df4a0ca45ed50d9c1e927f014d3fd6d42bae28a58f7b6cddbb

See more details on using hashes here.

File details

Details for the file nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 5fa1f14e2acdc1c7e444de3583104282bf381ddac38e33bf66a342c708b70922
MD5 308779c70fe031124a9a2762365bb4bb
BLAKE2b-256 fd114f06907cd61215c3666b391ab849562e8e9c6b309a386b3212bf99bc26d7

See more details on using hashes here.

File details

Details for the file nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nominal_streaming-0.9.2-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7a021e4a1461e38a64f1a3c8e31e44fe765be3634fdb96998d3ab0e36e747ddf
MD5 360c51c9028047e456f59a900ce03380
BLAKE2b-256 0ca25e946f14ea9aaca0eef5ad66592243b0b18ec18ae4307a17e3f503bf62c5

See more details on using hashes here.

File details

Details for the file nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ce39ed68510a51c76ee48d5b89f44faef5bfd7cb472716b07d5b8ea1fa0f599
MD5 58d56c47c0114c13745e9dbdecac96ca
BLAKE2b-256 faafb68e4df4b3b97d48928a65d73b5e5bf9bd92ff6a21840aa0f9fcdba06ee2

See more details on using hashes here.

File details

Details for the file nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 fd0b64ddc6480a11f2e6861c4a7c5e430d125fdc73d2c1135073cee0764882ab
MD5 6fc9de7a2fa26a6b602660d5e57be233
BLAKE2b-256 cd75e7310f63e0ac701e850018e47a45228ee6d6273c5a222bfc6e6cb7099c13

See more details on using hashes here.

File details

Details for the file nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nominal_streaming-0.9.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eb53d8888840d3b4086f3688eb2998a289333ece810ed8086d027a7f8da2a4f7
MD5 701f2983422b82c1377f4dce742bde6c
BLAKE2b-256 d9b7ecf00884ea2e27defdbf1ce2b32c549bc29782c423b3ec90d95e87265e2e

See more details on using hashes here.

File details

Details for the file nominal_streaming-0.9.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nominal_streaming-0.9.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a796134cba014d90cfa13eb1caceab37d907aafec7dcc66867d0a58342bfd99
MD5 1b6f9a6985393ca8dbf9d3307e10855f
BLAKE2b-256 75266f9cec6353184ec3f8bc6d4d58cff226e562049e9fe1761dc37b874f6758

See more details on using hashes here.

Supported by

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