code: def next_dataset(self, flush_report=True):
      if self.current_datamodule_idx >= 0:
          if flush_report:
              self.flush_report()
          else:
              self.report = []
  
      self.current_datamodule_idx += 1
  
      if self.current_datamodule_idx == len(self.datamodules):
          return False
      else:
          self.current_datamodule = self.datamodules[
              self.dataset_names[self.current_datamodule_idx]
          ]
          logger.info(
              f"Predicting for {self.dataset_names[self.current_datamodule_idx]}"
          )
          return True
  
imports: import csv
  import json
  import logging
  import os
  import warnings
  from dataclasses import dataclass, field
  from typing import List
  import pytorch_lightning
  from mmf.common.registry import registry
  from mmf.common.sample import convert_batch_to_sample_list
  from mmf.utils.configuration import get_mmf_env
  from mmf.utils.distributed import gather_tensor, is_main
  from mmf.utils.file_io import PathManager
  from mmf.utils.general import ckpt_name_from_core_args, foldername_from_config_override
  from mmf.utils.logger import log_class_usage
  from mmf.utils.timer import Timer
  from omegaconf import OmegaConf
  from torch.utils.data import Dataset
label_desc: Use image node_id 3 for calling the TestReporter obj's underlying member method code with example usage: obj.next_dataset(flush_report) and returns: False, True