uvex_transients.cli.pipeline.dry_run_report#

uvex_transients.cli.pipeline.dry_run_report(config: RunConfig, command: str, outputs: Iterable[Path] = (), overwrite: bool = False, cut_names: list[str] | None = None) → tuple[list[str], bool][source]#

Validate config for command and describe what it would do, without sampling or writing anything.

Resolving each section the command needs is itself the validation: an unknown transient class, a bad parameter override, an unknown cut type or cut name, an unknown mission, or an unreadable schedule all raise exactly as they would in a real run. The (potentially large) schedule is loaded, but no events are sampled and no output file is created.

Parameters:
  • config (RunConfig) – The parsed run-config.

  • command ({"generate", "cut", "photometry", "detection-counts", "run"}) – Which command is being dry-run; decides which config sections are validated. "run" validates generate:, cuts: (if declared), photometry:, and detection_counts: (if declared).

  • outputs (iterable of pathlib.Path, optional) – The files the real command would write, checked for collisions.

  • overwrite (bool, optional) – Whether the real command would be run with --overwrite.

  • cut_names (list of str, optional) – For "cut", which of the config’s cuts would run (default: every declared cut).

Returns:

  • lines (list of str) – The report, one line per entry.

  • ok (bool) – False if the real command would fail on an output file that already exists.