Metadata-Version: 2.4
Name: dq-genesis
Version: 0.1.0
Summary: Pipeline construction and execution for the SGN DQ module
Project-URL: Homepage, https://git.ligo.org/detchar/sgn-dq/dq-genesis
Project-URL: Documentation, https://detchar.docs.ligo.org/sgn-dq/dq-genesis
Project-URL: Repository, https://git.ligo.org/detchar/sgn-dq/dq-genesis.git
Project-URL: Issues, https://git.ligo.org/detchar/sgn-dq/dq-genesis/issues
Author-email: Derek Davis <derek.davis@ligo.org>, Olivia Godwin <olivia.godwin@ligo.org>, Zach Yarbrough <zach.yarbrough@ligo.org>
Maintainer-email: Derek Davis <derek.davis@ligo.org>, Olivia Godwin <olivia.godwin@ligo.org>, Zach Yarbrough <zach.yarbrough@ligo.org>
License-Expression: GPL-3.0-or-later
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.11
Requires-Dist: pyyaml>=6.0
Requires-Dist: scipy>=1.10
Requires-Dist: sgn-arrakis
Requires-Dist: sgn-dq>=0.0.4
Requires-Dist: sgn-gwframe
Requires-Dist: sgn-ligo
Requires-Dist: sgn-ts
Requires-Dist: sgn>=0.6
Provides-Extra: dev
Requires-Dist: markdown-callouts>=0.2; extra == 'dev'
Requires-Dist: markdown-exec>=0.5; extra == 'dev'
Requires-Dist: mkdocs-coverage>=0.2; extra == 'dev'
Requires-Dist: mkdocs-gen-files>=0.3; extra == 'dev'
Requires-Dist: mkdocs-literate-nav>=0.4; extra == 'dev'
Requires-Dist: mkdocs-material-igwn; extra == 'dev'
Requires-Dist: mkdocs-section-index>=0.3; extra == 'dev'
Requires-Dist: mkdocs>=1.3; extra == 'dev'
Requires-Dist: mkdocstrings[python]; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: mypy-extensions; extra == 'dev'
Requires-Dist: pip; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: toml>=0.10; extra == 'dev'
Provides-Extra: docs
Requires-Dist: markdown-callouts>=0.2; extra == 'docs'
Requires-Dist: markdown-exec>=0.5; extra == 'docs'
Requires-Dist: mkdocs-coverage>=0.2; extra == 'docs'
Requires-Dist: mkdocs-gen-files>=0.3; extra == 'docs'
Requires-Dist: mkdocs-literate-nav>=0.4; extra == 'docs'
Requires-Dist: mkdocs-material-igwn; extra == 'docs'
Requires-Dist: mkdocs-section-index>=0.3; extra == 'docs'
Requires-Dist: mkdocs>=1.3; extra == 'docs'
Requires-Dist: mkdocstrings[python]; extra == 'docs'
Requires-Dist: toml>=0.10; extra == 'docs'
Provides-Extra: lint
Requires-Dist: mypy; extra == 'lint'
Requires-Dist: mypy-extensions; extra == 'lint'
Requires-Dist: pip; extra == 'lint'
Requires-Dist: ruff; extra == 'lint'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Description-Content-Type: text/markdown

# dq-genesis

Pipeline construction and execution for the creation of the data quality vector.

`dq-genesis` parses a YAML DQ flag config, assembles an `sgn.Pipeline` from the
evaluators and transforms provided by `sgn-dq`, and runs it against frame data
(offline frame cache), shared-memory frames (online), or an Arrakis stream. The
output is a uint32 `DQG-DQ_VECTOR` channel written to a GWF frame stream.

## Install

```bash
pip install -e /path/to/dq-genesis
```

`dq-genesis` depends on `sgn-dq` (evaluators, `Not`, `Parity`), `sgn-ts`,
`sgn-ligo`, and `sgn`.

## Quick start

```bash
# Validate a config
dq-genesis --flags configs/dqmodule_h1.yaml --dry-run

# Offline run against a frame cache
dq-genesis --flags configs/dqmodule_h1.yaml \
  --gps-start 1234567890 --gps-end 1234568000 \
  --frame-cache h1.cache --output-dir /tmp/out

# Bounded replay from Arrakis (omit --gps-start/--gps-end for a live stream)
dq-genesis --flags configs/dqmodule_h1.yaml \
  --arrakis --gps-start 1234567890 --gps-end 1234568000 \
  --output-dir /tmp/out
```

See `src/dqgenesis/cli.py --help` for the full argument surface.

## Output destinations

The assembled DQ vector can be fanned out to one or more sinks. Select any
combination of the `--publish-*` flags; if none is given it defaults to disk,
preserving the original frame-writing behaviour.

- `--publish-disk` — write the DQ vector to GWF frame files. Control the
  destination with `--output-dir` (and `--write-path`, `--frame-duration`).
- `--publish-arrakis` — publish the DQ vector channel back to an Arrakis
  server. Requires `--publisher-id`; pass `--replay-id` to publish into a
  replay namespace.

```bash
# Save to GWF frames (default)
dq-genesis --flags configs/dqmodule_h1.yaml \
  --gps-start 1234567890 --gps-end 1234568000 \
  --frame-cache h1.cache --publish-disk --output-dir /tmp/out

# Publish back into Arrakis
dq-genesis --flags configs/dqmodule_h1.yaml \
  --arrakis --gps-start 1234567890 --gps-end 1234568000 \
  --publish-arrakis --publisher-id <publisher_id>

# Both at once — the DQ vector is fanned out to disk and Arrakis
dq-genesis --flags configs/dqmodule_h1.yaml \
  --arrakis --gps-start 1234567890 --gps-end 1234568000 \
  --publish-disk --output-dir /tmp/out \
  --publish-arrakis --publisher-id <publisher_id>
```

The output channel is named `<IFO>:DQG-DQ_VECTOR` by default; override it with
`--output-channel`.
