(input_dir: Path)
| 587 | |
| 588 | |
| 589 | def load_user_metadata(input_dir: Path) -> Dict[str, Dict[str, Any]]: |
| 590 | payload = load_json(input_dir / "users.json") |
| 591 | users = payload.get("users") if isinstance(payload, dict) else [] |
| 592 | metadata: Dict[str, Dict[str, Any]] = {} |
| 593 | if isinstance(users, list): |
| 594 | for item in users: |
| 595 | if not isinstance(item, dict): |
| 596 | continue |
| 597 | user_id = str(item.get("user_id") or "").strip() |
| 598 | if user_id: |
| 599 | metadata[user_id] = item |
| 600 | return metadata |
| 601 | |
| 602 | |
| 603 | def build_user_states( |
no test coverage detected