code: def set(msg_or_dict, key, value):
      
      # Sanity check: Is our target object valid?
      if not isinstance(msg_or_dict, (collections_abc.MutableMapping, message.Message)):
          raise TypeError(
              "set() expected a dict or protobuf message, got {!r}.".format(
                  type(msg_or_dict)
              )
          )
  
      # We may be setting a nested key. Resolve this.
      basekey, subkey = _resolve_subkeys(key)
  
      # If a subkey exists, then get that object and call this method
      # recursively against it using the subkey.
      if subkey is not None:
          if isinstance(msg_or_dict, collections_abc.MutableMapping):
              msg_or_dict.setdefault(basekey, {})
          set(get(msg_or_dict, basekey), subkey, value)
          return
  
      if isinstance(msg_or_dict, collections_abc.MutableMapping):
          msg_or_dict[key] = value
      else:
          _set_field_on_message(msg_or_dict, key, value)
docs: Set a key's value on a protobuf Message or dictionary.
  
      Args:
          msg_or_dict (Union[~google.protobuf.message.Message, Mapping]): the
              object.
          key (str): The key to set.
          value (Any): The value to set.
  
      Raises:
          TypeError: If ``msg_or_dict`` is not a Message or dictionary.