docs: def experiments_predictions_image_set_create(self, experiment_id, run_id, filename):
          """Create a prediction image set from a given tar archive that was
          produced as the result of a successful model run.
  
          Returns None if the specified model run does not exist or did not
          finish successfully. Raises a ValueError if the given file is invalid or
          model run.
  
          Parameters
          ----------
          experiment_id : string
              Unique experiment identifier
          run_id : string
              Unique model run identifier
          filename : string
              Path to uploaded image set archive file
  
          Returns
          -------
          PredictionImageSetHandle
              Handle for new prediction image set collection
          """
          # Ensure that the model run exists and is in state SUCCESS
          model_run = self.experiments_predictions_get(experiment_id, run_id)
          if model_run is None:
              return None
          if not model_run.state.is_success:
              raise ValueError('invalid run state: ' + str(model_run.state))
          # Check if the file is a valid tar archive (based on suffix).
          suffix = get_filename_suffix(filename, ARCHIVE_SUFFIXES)
          if suffix is None:
              # Not a valid file suffix
              raise ValueError('invalid file suffix: ' + os.path.basename(os.path.normpath(filename)))
          # Unpack the file to a temporary folder .
          temp_dir = tempfile.mkdtemp()
          try:
              tf = tarfile.open(name=filename, mode='r')
              tf.extractall(path=temp_dir)
          except (tarfile.ReadError, IOError) as err:
              # Clean up in case there is an error during extraction
              shutil.rmtree(temp_dir)
              raise ValueError(str(err))
          # The list of prediction image sets
          image_sets = []
  
          # Parse the CSV file. For each image file use:
          # img_obj = self.images.create_object(img_filename)
          # to create an image file object in the database.
  
          # Use file name as default object name
          name = os.path.basename(os.path.normpath(filename))[:-len(suffix)]
          # Create prediction image set
          img_set = self.prediction_images.create_object(name, image_sets)
          # Delete the temporary folder
          shutil.rmtree(temp_dir)
          return img_set