Ba7ath-Project commited on
Commit
e0d6ecb
·
1 Parent(s): 111f8e3

Add missing utility functions safe_float and safe_int

Browse files
Files changed (1) hide show
  1. app/core/utils.py +24 -0
app/core/utils.py CHANGED
@@ -19,3 +19,27 @@ def clean_nans(obj: Any) -> Any:
19
  elif isinstance(obj, list):
20
  return [clean_nans(v) for v in obj]
21
  return obj
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  elif isinstance(obj, list):
20
  return [clean_nans(v) for v in obj]
21
  return obj
22
+
23
+ def safe_float(val: Any, default: float = 0.0) -> float:
24
+ """Safely convert any value to float."""
25
+ try:
26
+ if val is None or (isinstance(val, float) and math.isnan(val)):
27
+ return default
28
+ return float(val)
29
+ except (ValueError, TypeError):
30
+ return default
31
+
32
+ def safe_int(val: Any, default: int = 0) -> int:
33
+ """Safely convert any value to int."""
34
+ try:
35
+ if val is None or (isinstance(val, float) and math.isnan(val)):
36
+ return default
37
+ return int(float(val))
38
+ except (ValueError, TypeError):
39
+ return default
40
+
41
+ def safe_list(val: Any) -> list:
42
+ """Ensure value is a list."""
43
+ if isinstance(val, list):
44
+ return val
45
+ return []