parameters: (
      message_or_descriptor: MessageOrDescriptorBase)
return_statement: return message_or_descriptor.GetOptions()
docstring: Returns the underlying message options for message_or_descriptor.
  
    Args:
      message_or_descriptor: A protobuf Message or DescriptorBase to examine.
  
    Returns:
      The ProtoOptions for the given Message or DescriptorBase. The type of
      Descriptor, if provided, will determine the options returned. All options
      are derived from message.Message.
  
    Raises:
      ValueError: Unable to retrieve options for type: <type>.
docstring_summary: Returns the underlying message options for message_or_descriptor.
docstring_tokens: Returns the underlying message options for message_or_descriptor .
function: def get_options(
      message_or_descriptor: MessageOrDescriptorBase) -> DescriptorOptions:
    """Returns the underlying message options for message_or_descriptor.
  
    Args:
      message_or_descriptor: A protobuf Message or DescriptorBase to examine.
  
    Returns:
      The ProtoOptions for the given Message or DescriptorBase. The type of
      Descriptor, if provided, will determine the options returned. All options
      are derived from message.Message.
  
    Raises:
      ValueError: Unable to retrieve options for type: <type>.
    """
    if isinstance(message_or_descriptor, message.Message):
      return message_or_descriptor.DESCRIPTOR.GetOptions()
    return message_or_descriptor.GetOptions()
function_tokens: def get_options ( message_or_descriptor : MessageOrDescriptorBase ) -> DescriptorOptions : if isinstance ( message_or_descriptor , message . Message ) : return message_or_descriptor . DESCRIPTOR . GetOptions ( ) return message_or_descriptor . GetOptions ( )