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:
- Data should exist in-memory only for a limited, configurable amount of time before it's sent to Core.
- Writes should fall back to disk if there are network failures.
- 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.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| nominal_streaming-0.9.4-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_x86_64.whl | CPython 3.10 | abi3 | Linux musl 1.2+ x86-64 | Details |
| nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_armv7l.whl | CPython 3.10 | abi3 | Linux musl 1.2+ ARMv7l | Details |
| nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_aarch64.whl | CPython 3.10 | abi3 | Linux musl 1.2+ ARM64 | Details |
| nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ ARMv7l | Details |
| nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| nominal_streaming-0.9.4-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 29.2 MB
Release files / nominal_streaming-0.9.4-cp310-abi3-win_amd64.whl
| Download URL | nominal_streaming-0.9.4-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c38d5e6aa28870687b1d410335ab5e17aebdaae65c78a4ef6cd91f81adb65b8b
|
|
BLAKE2b-256 checksum How to use checksums |
2a42b9de2cdb31b996062455d2a8418af100f1d80f5c4828effaaff28a18fda7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|
Release files / nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_x86_64.whl
| Download URL | nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
a90e75981240a640099df6d5c8fde0f0584d427e695a79b3b3c92752e5e47c8d
|
|
BLAKE2b-256 checksum How to use checksums |
71a19908a27ff2d4892cc844cbb01ed5206352c1de7e8c0c3f6ae406c1f94484
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|
Release files / nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_armv7l.whl
| Download URL | nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 3.5 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
cd84214fec3bbcb30598fd55715dfc1f2396554b3e1fd16b480fb8d28831948c
|
|
BLAKE2b-256 checksum How to use checksums |
55ab033b7ef3ed842e09a21df2071daf2b48852bbae628c53ee1b4f6ccbbb2dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|
Release files / nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_aarch64.whl
| Download URL | nominal_streaming-0.9.4-cp310-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
8705c6386345c61902c874db80102de71a2173a001a4ddd11f91429446e7600d
|
|
BLAKE2b-256 checksum How to use checksums |
6ad77ed9c6a4e4155a5d3400c3a3c67c3b8c47ca51434a7b0804e11c365837c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|
Release files / nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.8 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
d32cbb448bc2312fb8a20d35e752ffec35d0fe637221235d286d32316a6ff65b
|
|
BLAKE2b-256 checksum How to use checksums |
43d48c8b5e04cad538a96e5be9a5b3a591cba72671ffbe558894f5693190a060
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|
Release files / nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
| Download URL | nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl |
|---|---|
| Size | 3.3 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
06dd90c9f6a576349cb5b7f18a4f04d2e59aa9e88ca12a5080a677032fce6817
|
|
BLAKE2b-256 checksum How to use checksums |
6902ea048ac5f2fd6cd5b0314f12ab450ba4b9f94b66a4f3b6a7dada7113654c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|
Release files / nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | nominal_streaming-0.9.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
5eb7a572ef4cba1cde0f9253995e0cebfec612b3c9885e6876f1c94d2c289b71
|
|
BLAKE2b-256 checksum How to use checksums |
39dd3ab8fba37233a49143d867b1169c47fe7e434455778cc9c69be98680c79c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|
Release files / nominal_streaming-0.9.4-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | nominal_streaming-0.9.4-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
06a1721802c99c5614abd2dafd8aa9fd4c320e248bc74cc7ecc7c1d1c9fbc91b
|
|
BLAKE2b-256 checksum How to use checksums |
b08db61b623b341ba58056ad2fadc30928319e7bf7ccd3d77b9ea3a149e175db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.24
|