Skip to content

Commit cc2db94

Browse files
committed
simlify dict_factory case
1 parent e9ba14c commit cc2db94

1 file changed

Lines changed: 4 additions & 11 deletions

File tree

  • hypothesis-python/src/hypothesis/internal

hypothesis-python/src/hypothesis/internal/compat.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -212,17 +212,10 @@ def dataclass_asdict(obj, *, dict_factory=dict):
212212

213213
def _asdict_inner(obj, dict_factory):
214214
if dataclasses._is_dataclass_instance(obj):
215-
if dict_factory is dict:
216-
return {
217-
f.name: _asdict_inner(getattr(obj, f.name), dict)
218-
for f in dataclasses.fields(obj)
219-
}
220-
else: # pragma: no cover
221-
result = []
222-
for f in dataclasses.fields(obj):
223-
value = _asdict_inner(getattr(obj, f.name), dict_factory)
224-
result.append((f.name, value))
225-
return dict_factory(result)
215+
return dict_factory(
216+
(f.name, _asdict_inner(getattr(obj, f.name), dict_factory))
217+
for f in dataclasses.fields(obj)
218+
)
226219
elif isinstance(obj, tuple) and hasattr(obj, "_fields"):
227220
return type(obj)(*[_asdict_inner(v, dict_factory) for v in obj])
228221
elif isinstance(obj, (list, tuple)):

0 commit comments

Comments
 (0)