Install

pip install signal-dataset

Or with uv:

uv add signal-dataset

Storage extras

The base install reads and writes local filesystem roots. Cloud backends are extras, so their client libraries are not pulled in unless you ask for them:

pip install 'signal-dataset[gcs]'   # gs:// roots, via google-cloud-storage
pip install 'signal-dataset[s3]'    # s3:// roots, via boto3

The uv equivalents are uv add 'signal-dataset[gcs]' and uv add 'signal-dataset[s3]'.

If you open a gs:// or s3:// root without the matching extra, the error names the extra and the command to fix it, rather than failing on a missing import deep in a call stack:

GCS access requires the 'gcs' extra; install with `pip install 'signal-dataset[gcs]'`

Supported environments

Supported

Python

3.11, 3.12, 3.13

Operating system

Linux, macOS

Windows is not supported. Atomic publication depends on POSIX filesystem primitives: os.link, fcntl.flock, directory fsync, and the behaviour of an unlinked open file. Those are what make a published snapshot appear all at once, so this is a correctness constraint rather than a packaging gap. See why signal-dataset.

macOS is supported but is not covered by continuous integration, so run the test suite locally if you are developing on it.

Verifying the install

import signal_dataset as sds

print(sds.__version__)

Then follow the quickstart.