Skip to main content

Signal Dataset

Immutable, indexed storage for multidimensional signal records on local filesystems and GCS. Numerical fields use SafeTensors; ArrayRecord provides random access.

Status: experimental 0.x software. The Python API may make documented breaking changes between minor releases. Persisted-format compatibility is versioned separately.

import numpy as np
import signal_dataset as sds

record = sds.Record(
    id="capture-0042",
    fields={
        "iq": sds.Field(
            np.zeros((4, 4096), dtype=np.complex64),
            axes=(sds.Axis("channel", 4), sds.Axis("time", 4096)),
        )
    },
    metadata={"sample_rate_hz": 20_000_000},
)

shard = sds.write_shard([record], "captures.sds", work_id="worker-000")
dataset = sds.publish(
    "captures.sds",
    [shard],
    dataset_id="captures",
    snapshot_id="run-001",
)

assert dataset[0].id == "capture-0042"
assert dataset.record_metadata[0]["iq"].shape == (4, 4096)

for descriptor in dataset.iter_record_metadata():
    print(descriptor.id)

dataset.record_metadata[index] reads one aligned metadata entry without fetching signal tensors. dataset.iter_record_metadata() streams all metadata in logical order with one batched shard-store request per contiguous physical-shard run and keeps memory bounded to that run. The shipped ArrayRecord store serves each request with one underlying reader lifetime; custom stores control their own read_many() implementation. Readers follow generation-pinned manifests and never list directories or GCS prefixes.

See the quickstart, annotation example, and distributed-writing guide.

Install

uv add signal-dataset
uv add 'signal-dataset[gcs]'  # GCS transport

Equivalent pip commands are pip install signal-dataset and pip install 'signal-dataset[gcs]'.

Python 3.11–3.13 on Linux and macOS are supported. Windows is not currently supported because the local atomic-publication implementation uses POSIX filesystem primitives.

Design

  • Immutable, root-last publication: readers observe no dataset or a complete snapshot.
  • Lazy ordinal random access without directory or bucket-prefix discovery.
  • Tensor-free aligned metadata reads.
  • Storage and shard-container extension contracts.
  • Profile-free records: no modality, training framework, or split policy is embedded in the core.

The project does not provide mutable datasets, distributed scheduling, authorization, retention, or batching policy. See the architecture, format compatibility contract, and roadmap.

Signal Dataset is use-case agnostic. It has no training-framework, modality, or split-policy dependency.

Community

Read CONTRIBUTING.md before proposing changes. Use GitHub Issues for reproducible bugs and design discussion, and follow SECURITY.md for private vulnerability reports. Participation is governed by the Code of Conduct.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

signal_dataset-0.2.1.tar.gz (150.9 kB view details)

Uploaded Source

Built Distribution

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

signal_dataset-0.2.1-py3-none-any.whl (54.9 kB view details)

Uploaded Python 3

File details

Details for the file signal_dataset-0.2.1.tar.gz.

File metadata

  • Download URL: signal_dataset-0.2.1.tar.gz
  • Upload date:
  • Size: 150.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for signal_dataset-0.2.1.tar.gz
Algorithm Hash digest
SHA256 38b5f5799047c4b8f64a4c5fa108f823be6f9a2e7f3018ad7595c7cc3d8a1509
MD5 3fcdd54df22de1cf648da9d6a67a984d
BLAKE2b-256 391fbcdf57e643f703dc50f6f4c929d0ec50e0d92adc97f8e10d7d0c77afe7a3

See more details on using hashes here.

File details

Details for the file signal_dataset-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: signal_dataset-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 54.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for signal_dataset-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 470d7ad9f0fc05d812b600df88340bb3cd4b5ee6d1dad41bf69376cb7f6b132e
MD5 2dedf8921449c7686e0d85a78edf69fe
BLAKE2b-256 d2e6198862225ea69be4e839cc6ff61bb1bd69395d5864233358689fcdf6966b

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.0

2 files

0.2.3

2 files

0.2.2

2 files

This release

0.2.1 This release

2 files

0.2.0

2 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