Skip to content

Commit 24c4851

Browse files
committed
Fix to_dict with None optional fields.
1 parent 8e5b2e5 commit 24c4851

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/betterproto/__init__.py

+6
Original file line numberDiff line numberDiff line change
@@ -1046,6 +1046,8 @@ def to_dict(
10461046
]
10471047
if value or include_default_values:
10481048
output[cased_name] = value
1049+
elif value is None:
1050+
output[cased_name] = None
10491051
elif (
10501052
value._serialized_on_wire
10511053
or include_default_values
@@ -1078,6 +1080,8 @@ def to_dict(
10781080
output[cased_name] = [
10791081
b64encode(b).decode("utf8") for b in value
10801082
]
1083+
elif value is None:
1084+
output[cased_name] = None
10811085
else:
10821086
output[cased_name] = b64encode(value).decode("utf8")
10831087
elif meta.proto_type == TYPE_ENUM:
@@ -1090,6 +1094,8 @@ def to_dict(
10901094
else:
10911095
# transparently upgrade single value to repeated
10921096
output[cased_name] = [enum_class(value).name]
1097+
elif value is None:
1098+
output[cased_name] = None
10931099
else:
10941100
enum_class = field_types[field_name] # noqa
10951101
output[cased_name] = enum_class(value).name

0 commit comments

Comments
 (0)