py.lib

Yohn Y. 2023-01-30 Parent:4f4cc2fc9805

44:bfc3a109c06c Go to Latest

py.lib/type_utils/json_tools.py

. Убираем лишние форматированные строки * Проблема с созданием вложенных журналов в сложных ситуациях с локами и ротируемым журналом.

History
1 # coding: utf-8
2 from dataclasses import is_dataclass, asdict
5 def json_type_sanitizer(val):
6 """\
7 Преобразует значение ``val`` в пригодное для преобразования в json значение.
8 """
10 val_t = type(val)
12 if is_dataclass(val):
13 return json_type_sanitizer(asdict(val))
15 elif val_t in (int, float, str, bool) or val is None:
16 return val
18 elif val_t in (list, tuple):
19 return list(map(json_type_sanitizer, val))
21 elif val_t == dict:
22 return dict((key, json_type_sanitizer(d_val)) for key, d_val in val.items())
24 else:
25 return str(val)