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"}
        )

Metadata

Release files for nominal-streaming 0.9.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for nominal-streaming 0.9.8
File
nominal_streaming-0.9.8-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_armv7l.whl CPython 3.10 abi3 Linux musl 1.2+ ARMv7l Details
nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
nominal_streaming-0.9.8-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
nominal_streaming-0.9.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
nominal_streaming-0.9.8-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details

Total release size: 26.4 MB

Release files / nominal_streaming-0.9.8-cp310-abi3-win_amd64.whl

Download URL nominal_streaming-0.9.8-cp310-abi3-win_amd64.whl
Size 4.1 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
cdf25d1db9c258b166f309793599d7a86bd39e56fbaf2fdd80eec918e66d99b0
BLAKE2b-256 checksum
How to use checksums
05361920978ca6abb7fa2ee6906dac254b7c1bc0e9f805cd530702fd954f7dbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.24

Release files / nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_x86_64.whl
Size 4.1 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
62dc2148372eda7e5689eda0026b363486ab8dda495ca3d48f2a0f5beebd5495
BLAKE2b-256 checksum
How to use checksums
fa10076e048b53f048c92a2cc38090f923aaa1422e99380586cbbf3ea23bc050
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.24

Release files / nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_armv7l.whl

Download URL nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_armv7l.whl
Size 3.6 MB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
03537287bc65d4fce36b8c6ad6c96bcde1d4f8c1461f8311e6f84ce6c420daa8
BLAKE2b-256 checksum
How to use checksums
3cd3dd56810131522f158c46ca2a44fd06784032b1f52b7c0ba038b48d05e08b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.24

Release files / nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL nominal_streaming-0.9.8-cp310-abi3-musllinux_1_2_aarch64.whl
Size 3.8 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
00773d38b845da1ee554bb340baa038fb2223201bed8e0c4cf2344dceb852fe6
BLAKE2b-256 checksum
How to use checksums
6409ba8ce9a253c36af8cfa680560bb674287f9865178c350b9ac4cd1665f6fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.24

Release files / nominal_streaming-0.9.8-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL nominal_streaming-0.9.8-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 3.4 MB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
feedabd72da118b789940290b64c67497132c3843d81fd0a4cea88138eaa3aba
BLAKE2b-256 checksum
How to use checksums
23b4839e86716b3e18ead77d2f721a9863c939903191ce6bc6b576de552ec97d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.24

Release files / nominal_streaming-0.9.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL nominal_streaming-0.9.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.7 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
3891cb457033b69a2723dd69f3c9f6a8d1aef9698cedb2c9964fe59b513aa36c
BLAKE2b-256 checksum
How to use checksums
209427f088ea299bdb5869eaa2a7c1f107a7cbd6a9c89de2937b9bfb34f25158
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.24

Release files / nominal_streaming-0.9.8-cp310-abi3-macosx_11_0_arm64.whl

Download URL nominal_streaming-0.9.8-cp310-abi3-macosx_11_0_arm64.whl
Size 3.7 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b91967eb0620a55c0851328b16c1af95118e5bfc78f7b4c088aa097879d615de
BLAKE2b-256 checksum
How to use checksums
3aa8ecaaac5b3de770983dfe2220e3c0553a9d9f6bd2d5902f09cac43731cbc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.24

Release history Release notifications | RSS feed

0.10.0

8 release files

0.9.10

8 release files

0.9.9

8 release files

This release

0.9.8 This release

7 release files

0.9.7

8 release files

0.9.6

8 release files

0.9.5

8 release files

0.9.4

8 release files

0.9.3

8 release files

0.9.2

8 release files

0.9.1

8 release files

0.9.0

8 release files

0.8.2

8 release files

0.8.1

8 release files

0.8.0

8 release files

0.7.11

8 release files

0.7.10

8 release files

0.7.9

8 release files

0.7.8

8 release files

0.7.7

8 release files

0.7.6

8 release files

0.7.5

8 release files

0.7.4

8 release files

0.7.3

7 release files

0.7.2

7 release files

0.7.1

7 release files

0.7.0

7 release files

0.6.0

7 release files

0.5.8

7 release files

0.5.7

7 release files

0.5.6

7 release files

0.5.5

7 release files

0.5.4

7 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page