code: def setup_data(self, path):
      import json
      from functools import reduce
  
      logging.info("loading: " + path)
  
      if path is None:
          return iter(())
  
      with PathManager.open(path) as data_file:
          self.dialogs = json.load(data_file)
  
      for dialog in self.dialogs:
          if len(dialog["thread"]) == 0:
              continue
          user_types = dict(
              map(lambda u: (u["id"], u["userType"]), dialog["users"])
          )
          str_threads = [
              i
              for i in map(
                  lambda u: DefaultTeacher._transform_utterance(
                      u, user_types
                  ),
                  dialog["thread"],
              )
          ]
          dialog_txt = reduce(
              lambda u1, u2: u1 + "\n" + u2,
              str_threads,
              str_threads.pop(0),
          )
          e1 = dialog["evaluation"][0]
          e2 = dialog["evaluation"][1]
          label = "{0}:{1};{2}:{3}".format(
              e1["userId"], e1["quality"], e2["userId"], e2["quality"]
          )
  
          yield (dialog_txt, [label]), True
  
file_path: ParlAI/parlai/tasks/dialogue_qe/agents.py
imports: from parlai.core.teachers import DialogTeacher
  from parlai.utils.io import PathManager
  import parlai.utils.logging
  import os
  from parlai.tasks.dialogue_qe.build import build
label_desc: Use image node_id 4 for calling the DefaultTeacher obj's underlying member method code with example usage: obj.setup_data(path) and returns: iter