diff --git a/.codegen.json b/.codegen.json index ba584f4c..ee7efba2 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "ed5236c", "specHash": "131c54a", "version": "10.12.0" } +{ "engineHash": "5560f9a", "specHash": "131c54a", "version": "10.12.0" } diff --git a/box_sdk_gen/internal/base_object.py b/box_sdk_gen/internal/base_object.py index 47c40732..f9ce7718 100644 --- a/box_sdk_gen/internal/base_object.py +++ b/box_sdk_gen/internal/base_object.py @@ -81,6 +81,8 @@ def _deserialize(cls, key, value, annotation=None): if get_origin(annotation) == list: return cls._deserialize_list(key, value, annotation) + elif get_origin(annotation) == dict: + return cls._deserialize_dict(key, value, annotation) elif get_origin(annotation) == Union: return cls._deserialize_union(key, value, annotation) elif isinstance(annotation, EnumMeta): @@ -104,6 +106,17 @@ def _deserialize_list(cls, key, value, annotation: list): except Exception: return value + @classmethod + def _deserialize_dict(cls, key, value, annotation): + try: + args = get_args(annotation) + if len(args) < 2: + return value + value_type = args[1] + return {k: cls._deserialize(key, v, value_type) for k, v in value.items()} + except Exception: + return value + @classmethod def _deserialize_union(cls, key, value, annotation): try: