← Files LuciaARCHIVED FILE

modules/apertura-pratica/scripts/validate_run.py

1.25 KB · Oct 3, 2026 · 06:31 UTC

↓ Download file

from __future__ import annotations

import argparse
import json
import logging
from pathlib import Path

from apertura_pratica_core import (
    ValidationError,
    load_json,
    prepare_review,
    validate_run,
    write_json,
)


def main() -> int:
    parser = argparse.ArgumentParser(description="Validate one Apertura pratica run.")
    parser.add_argument("run_dir", type=Path)
    args = parser.parse_args()
    try:
        if (args.run_dir / "artifact_manifest.json").exists():
            # A saved package binds the validation bytes. Refresh its reports and
            # manifests together rather than leaving the delivered hashes stale.
            prepare_review(args.run_dir)
            report = load_json(args.run_dir / "validation_report.json")
        else:
            report = validate_run(args.run_dir)
            write_json(args.run_dir / "validation_report.json", report)
    except ValidationError as exc:
        logging.error("%s", exc)
        return 2
    logging.info("%s", json.dumps(report, ensure_ascii=False, sort_keys=True))
    return 0 if report["status"] in {"ready_for_review", "ready_to_open"} else 1


if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s")
    raise SystemExit(main())

SHA-256: 0bc0b15ddbddd9902e39177797e8bbf6d428f0f5d736eca2e1b9bde068b83235