Spaces:
Running
Running
| import json | |
| from dataclasses import asdict | |
| from typing import Any | |
| from models import FingerQualityResult | |
| def _round_value(value: Any) -> Any: | |
| if isinstance(value, float): | |
| return round(value, 2) | |
| if isinstance(value, dict): | |
| return {k: _round_value(v) for k, v in value.items()} | |
| if isinstance(value, (list, tuple)): | |
| return [_round_value(v) for v in value] | |
| return value | |
| def finger_quality_result_to_json(result: FingerQualityResult) -> str: | |
| data = asdict(result) | |
| # Make bbox frontend-friendly | |
| if data["bbox"] is not None: | |
| data["bbox"] = { | |
| "x": data["bbox"][0], | |
| "y": data["bbox"][1], | |
| "width": data["bbox"][2], | |
| "height": data["bbox"][3], | |
| } | |
| data = _round_value(data) | |
| return json.dumps(data, indent=2) | |