#!/usr/bin/env python3 """Print a quality report for every example dataspace.""" from __future__ import annotations import json import sys from datetime import date from pathlib import Path ROOT = Path(__file__).resolve().parent.parent sys.path.insert(0, str(ROOT)) from content_explorer.quality import report_dataspaces # noqa: E402 def main() -> int: reports = report_dataspaces(ROOT / "examples" / "dataspaces", today=date.today().isoformat()) if not reports: print("no dataspace fixtures found", file=sys.stderr) return 1 problems = [] for report in reports: if report["provenance"]["complete"] != report["provenance"]["records"]: problems.append(f"{report['dataspace']}: provenance incomplete") for name, count in report["failureClasses"].items(): if count: problems.append(f"{report['dataspace']}: {name} {count}") json.dump(reports, sys.stdout, indent=2) sys.stdout.write("\n") if problems: print("\n".join(problems), file=sys.stderr) return 1 print("Quality report OK", file=sys.stderr) return 0 if __name__ == "__main__": raise SystemExit(main())