Skip to content

Commit 2b2debf

Browse files
committed
Optimise for the normal case for dict.__getitem__
1 parent 3e7416e commit 2b2debf

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/betterproto/__init__.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -986,8 +986,9 @@ def parse(self: T, data: bytes) -> T:
986986
self._serialized_on_wire = True
987987
proto_meta = self._betterproto
988988
for parsed in parse_fields(data):
989-
field_name = proto_meta.field_name_by_number.get(parsed.number)
990-
if not field_name:
989+
try:
990+
field_name = proto_meta.field_name_by_number[parsed.number]
991+
except KeyError:
991992
self._unknown_fields += parsed.raw
992993
continue
993994

@@ -1203,8 +1204,9 @@ def from_dict(self: T, value: Dict[str, Any]) -> T:
12031204
self._serialized_on_wire = True
12041205
for key in value:
12051206
field_name = safe_snake_case(key)
1206-
meta = self._betterproto.meta_by_field_name.get(field_name)
1207-
if not meta:
1207+
try:
1208+
meta = self._betterproto.meta_by_field_name[field_name]
1209+
except KeyError:
12081210
continue
12091211

12101212
if value[key] is not None:

0 commit comments

Comments
 (0)