1 """Shared helpers for density-matrix evidence validation slice modules.""" 3 from __future__
import annotations
6 from collections.abc
import Callable
7 from pathlib
import Path
12 bundle: dict[str, Any],
13 fields: tuple[str, ...],
16 missing = [field
for field
in fields
if field
not in bundle]
19 "{} missing required fields: {}".format(label,
", ".join(missing))
24 argv: list[str] |
None,
26 build_cases: Callable[[], list[dict[str, Any]]],
27 build_artifact_bundle: Callable[[list[dict[str, Any]]], dict[str, Any]],
28 artifact_filename: str,
29 default_output_dir: Path,
32 quiet_report: Callable[[dict[str, Any]],
None] |
None =
None,
34 """CLI for slices that follow build_cases â build_artifact_bundle(cases) â write.""" 35 from benchmarks.density_matrix.evidence_io
import write_artifact_bundle
37 parser = argparse.ArgumentParser(description=description)
41 default=default_output_dir,
47 help=
"Suppress per-case console output.",
49 args = parser.parse_args(argv)
56 if quiet_report
is not None:
58 print(
"Wrote {}".format(output_path))
60 return 0
if bundle[
"status"] ==
"pass" else 1
def build_artifact_bundle(results)
def write_artifact_bundle
def require_bundle_fields