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)

for full_record in dataset.iter_records():
    assert full_record["iq"].data.shape == (4, 4096)

dataset.record_metadata[index] reads one aligned metadata entry without fetching signal tensors. dataset.iter_record_metadata() streams all metadata in logical order with bounded shard-store requests and keeps memory bounded to StorageOptions.records_per_read_batch records. The shipped ArrayRecord store serves each request with one underlying reader lifetime; custom stores control their own read_many() implementation. dataset.iter_records() provides the same ordered, shard-batched traversal for full records, including tensor payloads and normal record validation. 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.2.tar.gz (152.7 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.2-py3-none-any.whl (55.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: signal_dataset-0.2.2.tar.gz
  • Upload date:
  • Size: 152.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for signal_dataset-0.2.2.tar.gz
Algorithm Hash digest
SHA256 962304b2c94a1d7e4e5217d092a9d4f78c43740c859a02119e2da170cf6d0a31
MD5 c5bef556b8102436c867967d10c4cd8c
BLAKE2b-256 cf2c55f27d3ced6457b9e12ff82be330cda7615570bcd7e4864f8bcd062f12f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for signal_dataset-0.2.2.tar.gz:

Publisher: release.yml on superpose-labs/signal-dataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: signal_dataset-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 55.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for signal_dataset-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 da92374ef28f74b043c68041fe630df15a44d939d3259d5714d4c7d2acfb5c01
MD5 7b09b06e4bb56f2cdd478ef0b6065d37
BLAKE2b-256 5634635b9a596d7eb6029ea1380d58a1a31d191cd5cce2031742658dc5f29ad4

See more details on using hashes here.

Provenance

The following attestation bundles were made for signal_dataset-0.2.2-py3-none-any.whl:

Publisher: release.yml on superpose-labs/signal-dataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

2 files

0.2.3

2 files

This release

0.2.2 This release

2 files

0.2.1

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