-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathutils.py
More file actions
29 lines (23 loc) · 777 Bytes
/
Copy pathutils.py
File metadata and controls
29 lines (23 loc) · 777 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import json
import math
def parse_bool(value, default_value):
if type(value) is bool:
return value
if type(value) is str:
value = value.lower()
return value == "1" or value == "true"
return default_value
def serialize_log(log):
response = log.copy()
for key, value in response.items():
if value is None:
response[key] = None
elif isinstance(value, (str, bool)):
response[key] = value
elif isinstance(value, (list, dict)):
response[key] = json.dumps(value)
elif math.isnan(value) or (isinstance(value, (int, float)) and not math.isfinite(value)):
response[key] = None
else:
response[key] = value
return json.dumps(response)