Spaces:
Running
Running
| import math | |
| from decimal import Decimal | |
| from typing import Any | |
| def clean_nans(obj: Any) -> Any: | |
| """ | |
| Recursive utility to replace NaN, Infinity, and -Infinity with None | |
| to ensure JSON compatibility. | |
| Standards Moez Elbey: Missing data => null/None. | |
| """ | |
| if isinstance(obj, float): | |
| if math.isnan(obj) or math.isinf(obj): | |
| return None | |
| return obj | |
| elif isinstance(obj, Decimal): | |
| return float(obj) | |
| elif isinstance(obj, dict): | |
| return {k: clean_nans(v) for k, v in obj.items()} | |
| elif isinstance(obj, list): | |
| return [clean_nans(v) for v in obj] | |
| return obj | |