|
@@ 1146-1160 (lines=15) @@
|
| 1143 |
|
return _astuple_inner(obj, tuple_factory) |
| 1144 |
|
|
| 1145 |
|
|
| 1146 |
|
def _astuple_inner(obj, tuple_factory): |
| 1147 |
|
if _is_dataclass_instance(obj): |
| 1148 |
|
result = [] |
| 1149 |
|
for f in fields(obj): |
| 1150 |
|
value = _astuple_inner(getattr(obj, f.name), tuple_factory) |
| 1151 |
|
result.append(value) |
| 1152 |
|
return tuple_factory(result) |
| 1153 |
|
if isinstance(obj, (list, tuple)): |
| 1154 |
|
return type(obj)(_astuple_inner(v, tuple_factory) for v in obj) |
| 1155 |
|
if isinstance(obj, dict): |
| 1156 |
|
return type(obj)( |
| 1157 |
|
(_astuple_inner(k, tuple_factory), _astuple_inner(v, tuple_factory)) |
| 1158 |
|
for k, v in obj.items() |
| 1159 |
|
) |
| 1160 |
|
return copy.deepcopy(obj) |
| 1161 |
|
|
| 1162 |
|
|
| 1163 |
|
def make_dataclass( |
|
@@ 1105-1119 (lines=15) @@
|
| 1102 |
|
return _asdict_inner(obj, dict_factory) |
| 1103 |
|
|
| 1104 |
|
|
| 1105 |
|
def _asdict_inner(obj, dict_factory): |
| 1106 |
|
if _is_dataclass_instance(obj): |
| 1107 |
|
result = [] |
| 1108 |
|
for f in fields(obj): |
| 1109 |
|
value = _asdict_inner(getattr(obj, f.name), dict_factory) |
| 1110 |
|
result.append((f.name, value)) |
| 1111 |
|
return dict_factory(result) |
| 1112 |
|
if isinstance(obj, (list, tuple)): |
| 1113 |
|
return type(obj)(_asdict_inner(v, dict_factory) for v in obj) |
| 1114 |
|
if isinstance(obj, dict): |
| 1115 |
|
return type(obj)( |
| 1116 |
|
(_asdict_inner(k, dict_factory), _asdict_inner(v, dict_factory)) |
| 1117 |
|
for k, v in obj.items() |
| 1118 |
|
) |
| 1119 |
|
return copy.deepcopy(obj) |
| 1120 |
|
|
| 1121 |
|
|
| 1122 |
|
def astuple(obj, *, tuple_factory=tuple): |