fix Message.to_dict mutating the underlying Message (#378)
* [fix] to_dict modifies the underlying message (#151) * add test for mapmessage * fix for to_dict * formatting * Apply suggestions from code review Co-authored-by: Arun Babu Neelicattu <arun.neelicattu@gmail.com> * change to_json to to_dict Co-authored-by: Arun Babu Neelicattu <arun.neelicattu@gmail.com>
This commit is contained in:
@@ -1123,12 +1123,13 @@ class Message(ABC):
|
||||
):
|
||||
output[cased_name] = value.to_dict(casing, include_default_values)
|
||||
elif meta.proto_type == TYPE_MAP:
|
||||
output_map = {**value}
|
||||
for k in value:
|
||||
if hasattr(value[k], "to_dict"):
|
||||
value[k] = value[k].to_dict(casing, include_default_values)
|
||||
output_map[k] = value[k].to_dict(casing, include_default_values)
|
||||
|
||||
if value or include_default_values:
|
||||
output[cased_name] = value
|
||||
output[cased_name] = output_map
|
||||
elif (
|
||||
value != self._get_field_default(field_name)
|
||||
or include_default_values
|
||||
|
||||
Reference in New Issue
Block a user