From bc7444cecbe579f2f53d3b11c313e3e0735f0710 Mon Sep 17 00:00:00 2001 From: Name From Git-Plugin-Test Date: Sat, 27 May 2023 10:11:38 +0330 Subject: [PATCH 1/2] Fix to-pydict function --- src/betterproto/__init__.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/betterproto/__init__.py b/src/betterproto/__init__.py index 82a5b1489..bfcef803e 100644 --- a/src/betterproto/__init__.py +++ b/src/betterproto/__init__.py @@ -1344,6 +1344,9 @@ def to_pydict( defaults = self._betterproto.default_gen for field_name, meta in self._betterproto.meta_by_field_name.items(): field_is_repeated = defaults[field_name] is list + if self.__raw_get(field_name) is PLACEHOLDER and \ + not include_default_values: + continue value = getattr(self, field_name) cased_name = casing(field_name).rstrip("_") # type: ignore if meta.proto_type == TYPE_MESSAGE: @@ -1388,13 +1391,7 @@ def to_pydict( if value or include_default_values: output[cased_name] = value - elif ( - value != self._get_field_default(field_name) - or include_default_values - or self._include_default_value_for_oneof( - field_name=field_name, meta=meta - ) - ): + else: output[cased_name] = value return output From 646202b0ebeffafefc52bbd858c100d4747c8742 Mon Sep 17 00:00:00 2001 From: Name From Git-Plugin-Test Date: Sun, 28 May 2023 10:13:34 +0330 Subject: [PATCH 2/2] Fix format --- src/betterproto/__init__.py | 4 +--- src/betterproto/grpc/grpclib_server.py | 1 - src/betterproto/plugin/compiler.py | 1 - src/betterproto/plugin/parser.py | 1 - .../test_google_impl_behavior_equivalence.py | 2 -- 5 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/betterproto/__init__.py b/src/betterproto/__init__.py index bfcef803e..5a586c924 100644 --- a/src/betterproto/__init__.py +++ b/src/betterproto/__init__.py @@ -1344,8 +1344,7 @@ def to_pydict( defaults = self._betterproto.default_gen for field_name, meta in self._betterproto.meta_by_field_name.items(): field_is_repeated = defaults[field_name] is list - if self.__raw_get(field_name) is PLACEHOLDER and \ - not include_default_values: + if self.__raw_get(field_name) is PLACEHOLDER and not include_default_values: continue value = getattr(self, field_name) cased_name = casing(field_name).rstrip("_") # type: ignore @@ -1473,7 +1472,6 @@ def _validate_field_groups(cls, values): field_name_to_meta = cls._betterproto_meta.meta_by_field_name # type: ignore for group, field_set in group_to_one_ofs.items(): - if len(field_set) == 1: (field,) = field_set field_name = field.name diff --git a/src/betterproto/grpc/grpclib_server.py b/src/betterproto/grpc/grpclib_server.py index 5c1f93452..3e2803113 100644 --- a/src/betterproto/grpc/grpclib_server.py +++ b/src/betterproto/grpc/grpclib_server.py @@ -21,7 +21,6 @@ async def _call_rpc_handler_server_stream( stream: grpclib.server.Stream, request: Any, ) -> None: - response_iter = handler(request) # check if response is actually an AsyncIterator # this might be false if the method just returns without diff --git a/src/betterproto/plugin/compiler.py b/src/betterproto/plugin/compiler.py index 7542432b2..510d64857 100644 --- a/src/betterproto/plugin/compiler.py +++ b/src/betterproto/plugin/compiler.py @@ -21,7 +21,6 @@ def outputfile_compiler(output_file: OutputTemplate) -> str: - templates_folder = os.path.abspath( os.path.join(os.path.dirname(__file__), "..", "templates") ) diff --git a/src/betterproto/plugin/parser.py b/src/betterproto/plugin/parser.py index 358cc20e4..f48533338 100644 --- a/src/betterproto/plugin/parser.py +++ b/src/betterproto/plugin/parser.py @@ -159,7 +159,6 @@ def _make_one_of_field_compiler( proto_obj: "FieldDescriptorProto", path: List[int], ) -> FieldCompiler: - pydantic = output_package.pydantic_dataclasses Cls = PydanticOneOfFieldCompiler if pydantic else OneOfFieldCompiler return Cls( diff --git a/tests/inputs/google_impl_behavior_equivalence/test_google_impl_behavior_equivalence.py b/tests/inputs/google_impl_behavior_equivalence/test_google_impl_behavior_equivalence.py index 0297692c6..b51851a3d 100644 --- a/tests/inputs/google_impl_behavior_equivalence/test_google_impl_behavior_equivalence.py +++ b/tests/inputs/google_impl_behavior_equivalence/test_google_impl_behavior_equivalence.py @@ -13,7 +13,6 @@ def test_oneof_serializes_similar_to_google_oneof(): - tests = [ (Test(string="abc"), ReferenceTest(string="abc")), (Test(integer=2), ReferenceTest(integer=2)), @@ -30,7 +29,6 @@ def test_oneof_serializes_similar_to_google_oneof(): def test_bytes_are_the_same_for_oneof(): - message = Test(string="") message_reference = ReferenceTest(string="")