(assets_wrapper: dict)
| 83 | |
| 84 | |
| 85 | def figure_quality_summary(assets_wrapper: dict) -> dict[str, int]: |
| 86 | summary = {"usable": 0, "review": 0, "reject": 0, "unknown": 0} |
| 87 | for item in assets_wrapper.get("figure_assets", []) or []: |
| 88 | if not isinstance(item, dict): |
| 89 | summary["unknown"] += 1 |
| 90 | continue |
| 91 | quality_signals = item.get("quality_signals", {}) |
| 92 | if not isinstance(quality_signals, dict): |
| 93 | summary["unknown"] += 1 |
| 94 | continue |
| 95 | status = normalize_whitespace(str(quality_signals.get("visual_quality_status", ""))).lower() |
| 96 | if status == "needs_review": |
| 97 | status = "review" |
| 98 | if status not in summary: |
| 99 | status = "unknown" |
| 100 | summary[status] += 1 |
| 101 | return summary |
| 102 | |
| 103 | |
| 104 | def truncation_warnings(source_coverage: dict, asset_coverage: dict) -> list[str]: |
no test coverage detected