Skip to content

Commit 3f0cdbc

Browse files
committed
Make dict encoding recursive
Signed-off-by: Samuel Monson <[email protected]>
1 parent 7efb7b1 commit 3f0cdbc

File tree

1 file changed

+8
-29
lines changed

1 file changed

+8
-29
lines changed

src/guidellm/utils/encoding.py

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -390,23 +390,11 @@ def to_dict(self, obj: Any) -> Any:
390390
if isinstance(obj, BaseModel):
391391
return self.to_dict_pydantic(obj)
392392

393-
if isinstance(obj, (list, tuple)) and any(
394-
isinstance(item, BaseModel) for item in obj
395-
):
396-
return [
397-
self.to_dict_pydantic(item) if isinstance(item, BaseModel) else item
398-
for item in obj
399-
]
393+
if isinstance(obj, (list, tuple)):
394+
return [self.to_dict(item) for item in obj]
400395

401-
if isinstance(obj, dict) and any(
402-
isinstance(value, BaseModel) for value in obj.values()
403-
):
404-
return {
405-
key: self.to_dict_pydantic(value)
406-
if isinstance(value, BaseModel)
407-
else value
408-
for key, value in obj.items()
409-
}
396+
if isinstance(obj, dict):
397+
return {key: self.to_dict(value) for key, value in obj.items()}
410398

411399
return obj
412400

@@ -418,22 +406,13 @@ def from_dict(self, data: Any) -> Any:
418406
:return: Reconstructed object with proper types restored
419407
"""
420408
if isinstance(data, (list, tuple)):
421-
return [
422-
self.from_dict_pydantic(item)
423-
if isinstance(item, dict) and "*PYD*" in item
424-
else item
425-
for item in data
426-
]
427-
elif isinstance(data, dict) and data:
409+
return [self.from_dict(item) for item in data]
410+
411+
if isinstance(data, dict) and data:
428412
if "*PYD*" in data:
429413
return self.from_dict_pydantic(data)
430414

431-
return {
432-
key: self.from_dict_pydantic(value)
433-
if isinstance(value, dict) and "*PYD*" in value
434-
else value
435-
for key, value in data.items()
436-
}
415+
return {key: self.from_dict(value) for key, value in data.items()}
437416

438417
return data
439418

0 commit comments

Comments
 (0)