Metadata-Version: 2.4
Name: eigsep_redis
Version: 2.0.0
Summary: Redis transport and bus surfaces for the EIGSEP experiment.
Author-email: Christian Hellum Bye <cbh@berkeley.edu>
License: MIT
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Astronomy
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: redis
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: fakeredis; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-timeout; extra == "dev"
Dynamic: license-file

# eigsep_redis

Redis transport and bus surfaces for the
[EIGSEP](https://github.com/EIGSEP) radio astronomy experiment.

Provides the `Transport` object (Redis connection + last-read-id
bookkeeping) and per-bus writer/reader classes (`MetadataWriter`,
`MetadataSnapshotReader`, `MetadataStreamReader`, `StatusWriter`,
`StatusReader`, `HeartbeatWriter`, `HeartbeatReader`, `ConfigStore`)
used by the observing stack and by the picohost producer library.

Split out of `eigsep_observing` so that producers (e.g. `picohost`)
can depend on just the bus primitives without pulling in the full
observing stack (`h5py`, `flask`, `eigsep-vna`, etc.).

## Installation

```bash
pip install -e ".[dev]"
```

## Development

```bash
pytest                   # tests + coverage
ruff check .             # lint
ruff format --check .    # formatting (line length 79)
```

## Testing

Tests use `fakeredis` via `DummyTransport` — no Redis server required.
The full producer↔consumer integration tests live in
[`eigsep_observing`](https://github.com/EIGSEP/eigsep_observing)
(`tests/test_redis.py`), which imports both packages.

## Related repos

- [`eigsep_observing`](https://github.com/EIGSEP/eigsep_observing) —
  observation pipeline that consumes this bus.
- `picohost` — Pico microcontroller producer library that publishes to
  this bus.
