diff --git a/src/betterproto/__init__.py b/src/betterproto/__init__.py index 82a5b1489..5a586c924 100644 --- a/src/betterproto/__init__.py +++ b/src/betterproto/__init__.py @@ -1344,6 +1344,8 @@ 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 +1390,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 @@ -1476,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="")