<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ParseFileObject(self, parser_mediator, file_object):
 """Parses a compound ZIP file-like object. Args: parser_mediator (ParserMediator):
 mediates interactions between parsers and other components, such as storage and dfvfs. file_object (dfvfs.FileIO):
 a file-like object. Raises: UnableToParseFile: when the file cannot be parsed. """

    display_name = parser_mediator.GetDisplayName()

    if not zipfile.is_zipfile(file_object):
      raise errors.UnableToParseFile(
          '[{0:s}] unable to parse file: {1:s} with error: {2:s}'.format(
              self.NAME, display_name, 'Not a Zip file.'))

    try:
      zip_file = zipfile.ZipFile(file_object, 'r', allowZip64=True)
      self._ProcessZipFileWithPlugins(parser_mediator, zip_file)
      zip_file.close()

    # Some non-ZIP files return true for is_zipfile but will fail with a
    # negative seek (IOError) or another error.
    except (zipfile.BadZipfile, struct.error) as exception:
      raise errors.UnableToParseFile(
          '[{0:s}] unable to parse file: {1:s} with error: {2!s}'.format(
              self.NAME, display_name, exception))