code: def GetDataStream(self, name, case_sensitive=True):
      
      if not isinstance(name, py2to3.STRING_TYPES):
        raise ValueError('Name is not a string.')
  
      name_lower = name.lower()
      matching_data_stream = None
  
      for data_stream in self._GetDataStreams():
        if data_stream.name == name:
          return data_stream
  
        if not case_sensitive and data_stream.name.lower() == name_lower:
          if not matching_data_stream:
            matching_data_stream = data_stream
  
      return matching_data_stream
docs: Retrieves a data stream by name.
  
      Args:
        name (str): name of the data stream.
        case_sensitive (Optional[bool]): True if the name is case sensitive.
  
      Returns:
        DataStream: a data stream or None if not available.
  
      Raises:
        ValueError: if the name is not string.