code: def ParseDataStream(self, parser_mediator, file_entry, data_stream_name):
      
      file_object = file_entry.GetFileObject(data_stream_name=data_stream_name)
      if not file_object:
        raise RuntimeError(
            'Unable to retrieve file-like object from file entry.')
  
      try:
        parser_names = self._GetSignatureMatchParserNames(file_object)
  
        parse_with_non_sigscan_parsers = True
        if parser_names:
          parse_result = self._ParseFileEntryWithParsers(
              parser_mediator, parser_names, file_entry, file_object=file_object)
          if parse_result in (
              self._PARSE_RESULT_FAILURE, self._PARSE_RESULT_SUCCESS):
            parse_with_non_sigscan_parsers = False
  
        if parse_with_non_sigscan_parsers:
          self._ParseFileEntryWithParsers(
              parser_mediator, self._non_sigscan_parser_names, file_entry,
              file_object=file_object)
  
      finally:
        file_object.close()
docs: Parses a data stream of a file entry with the enabled parsers.
  
      Args:
        parser_mediator (ParserMediator): parser mediator.
        file_entry (dfvfs.FileEntry): file entry.
        data_stream_name (str): data stream name.
  
      Raises:
        RuntimeError: if the file-like object or the parser object is missing.