Metadata-Version: 2.4
Name: eigsep_observing
Version: 2.0.1
Summary: Control code for EIGSEP observing.
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: h5py
Requires-Dist: numpy
Requires-Dist: pyyaml
Requires-Dist: flask
Requires-Dist: plotly
Requires-Dist: picohost>=3.1
Requires-Dist: eigsep-vna~=1.3
Requires-Dist: eigsep_redis~=2.1
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: pyserial-mock; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-timeout; extra == "dev"
Requires-Dist: pytest-xdist; extra == "dev"
Provides-Extra: interactive
Requires-Dist: matplotlib; extra == "interactive"
Requires-Dist: ipython; extra == "interactive"
Dynamic: license-file

# EIGSEP Observing

[![codecov](https://codecov.io/gh/EIGSEP/eigsep_observing/graph/badge.svg?token=GK8ZZOJ57W)](https://codecov.io/gh/EIGSEP/eigsep_observing)

Control code needed to take EIGSEP data.

## Installation

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

Pulls [`eigsep_redis`](https://github.com/EIGSEP/eigsep_redis) as a
sibling runtime dependency (Redis transport + bus primitives, also
consumed by `picohost`).

### Hardware dependency

Talking to the SNAP board requires
[casperfpga](https://github.com/EIGSEP/casperfpga), which is **not** on PyPI
and must be installed from source. It is a lazy optional import, so the test
suite and any dummy-mode / panda-side install does not need it. On the ground
computer that actually drives the correlator, install the pinned version from
`hardware-requirements.txt`:

```bash
pip install -r hardware-requirements.txt
```

See that file for the current tag (currently **v0.6.0**).

## Scripts

Observing loops and the startup flow live in `OPERATIONS.md`. Motor
operations run through `PicoManager` via Redis, so the manager service
stays up during scans.

```bash
# Az/el beam scan
python scripts/motor_control.py [--dummy] [--el_first] [--count N] \
                                [--pause_s S] [--sleep_s S]

# Interactive zeroing UI (curses)
python scripts/motor_manual.py  [--dummy] [--deg D]
```
