MCPcopy
hub / github.com/danielgtaylor/python-betterproto / __setattr__

Method __setattr__

src/betterproto/__init__.py:854–875  ·  view source on GitHub ↗
(self, attr: str, value: Any)

Source from the content-addressed store, hash-verified

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."""

Callers 1

__getattribute__Method · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected