Spaces:
Runtime error
Runtime error
| """ | |
| MongoDB utility functions for handling data type conversions. | |
| """ | |
| from typing import Any | |
| from decimal import Decimal | |
| def convert_decimals_to_float(obj: Any) -> Any: | |
| """ | |
| Recursively convert Decimal objects to float for MongoDB compatibility. | |
| MongoDB/BSON cannot encode Python Decimal objects directly. | |
| This function recursively traverses data structures and converts | |
| all Decimal instances to float while preserving the structure. | |
| Args: | |
| obj: Any object that may contain Decimal instances | |
| Returns: | |
| Object with all Decimal instances converted to float | |
| """ | |
| if isinstance(obj, Decimal): | |
| return float(obj) | |
| elif isinstance(obj, dict): | |
| return {key: convert_decimals_to_float(value) for key, value in obj.items()} | |
| elif isinstance(obj, list): | |
| return [convert_decimals_to_float(item) for item in obj] | |
| elif isinstance(obj, tuple): | |
| return tuple(convert_decimals_to_float(item) for item in obj) | |
| else: | |
| return obj |