| 852 | return value |
| 853 | |
| 854 | def __setattr__(self, attr: str, value: Any) -> None: |
| 855 | if ( |
| 856 | isinstance(value, Message) |
| 857 | and hasattr(value, "_betterproto") |
| 858 | and not value._betterproto.meta_by_field_name |
| 859 | ): |
| 860 | value._serialized_on_wire = True |
| 861 | |
| 862 | if attr != "_serialized_on_wire": |
| 863 | # Track when a field has been set. |
| 864 | self.__dict__["_serialized_on_wire"] = True |
| 865 | |
| 866 | if hasattr(self, "_group_current"): # __post_init__ had already run |
| 867 | if attr in self._betterproto.oneof_group_by_field: |
| 868 | group = self._betterproto.oneof_group_by_field[attr] |
| 869 | for field in self._betterproto.oneof_field_by_group[group]: |
| 870 | if field.name == attr: |
| 871 | self._group_current[group] = field.name |
| 872 | else: |
| 873 | super().__setattr__(field.name, PLACEHOLDER) |
| 874 | |
| 875 | super().__setattr__(attr, value) |
| 876 | |
| 877 | def __bool__(self) -> bool: |
| 878 | """True if the Message has any fields with non-default values.""" |