code: def sender(self, value):
          
          if isinstance(value, Recipient):
              if value._parent is None:
                  value._parent = self
                  value._field = 'from'
              self.__sender = value
          elif isinstance(value, str):
              self.__sender.address = value
              self.__sender.name = ''
          else:
              raise ValueError(
                  'sender must be an address string or a Recipient object')
          self._track_changes.add('from')
docs: sender is a property to force to be always a Recipient class