code: def get(msg_or_dict, key, default=_SENTINEL):
      
      # We may need to get a nested key. Resolve this.
      key, subkey = _resolve_subkeys(key)
  
      # Attempt to get the value from the two types of objects we know about.
      # If we get something else, complain.
      if isinstance(msg_or_dict, message.Message):
          answer = getattr(msg_or_dict, key, default)
      elif isinstance(msg_or_dict, collections_abc.Mapping):
          answer = msg_or_dict.get(key, default)
      else:
          raise TypeError(
              "get() expected a dict or protobuf message, got {!r}.".format(
                  type(msg_or_dict)
              )
          )
  
      # If the object we got back is our sentinel, raise KeyError; this is
      # a "not found" case.
      if answer is _SENTINEL:
          raise KeyError(key)
  
      # If a subkey exists, call this method recursively against the answer.
      if subkey is not None and answer is not default:
          return get(answer, subkey, default=default)
  
      return answer
docs: Retrieve a key's value from a protobuf Message or dictionary.
  
      Args:
          mdg_or_dict (Union[~google.protobuf.message.Message, Mapping]): the
              object.
          key (str): The key to retrieve from the object.
          default (Any): If the key is not present on the object, and a default
              is set, returns that default instead. A type-appropriate falsy
              default is generally recommended, as protobuf messages almost
              always have default values for unset values and it is not always
              possible to tell the difference between a falsy value and an
              unset one. If no default is set then :class:`KeyError` will be
              raised if the key is not present in the object.
  
      Returns:
          Any: The return value from the underlying Message or dict.
  
      Raises:
          KeyError: If the key is not found. Note that, for unset values,
              messages and dictionaries may not have consistent behavior.
          TypeError: If ``msg_or_dict`` is not a Message or Mapping.