FINGERQUALITYAPI / utils.py
sol9x-sagar's picture
initial setup
e735bf3
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)