code: def setup_data(path):
      print("loading: " + path)
  
      with PathManager.open(path, "r") as data_file:
          for line in data_file:
              question = json.loads(line)
              question_text = question[AQUA_QUESTION_KEY]
              answer = ord(question[AQUA_ANSWER_KEY]) - ord("A")
              labels = question[AQUA_OPTIONS_KEY]
              answer = [labels[answer]]
              yield (question_text, answer, None, labels), True
  
              # Ask for a rationale now
              rationale = [question[AQUA_RATIONALE_KEY]]
              yield (
                  RATIONALE_QUESTION_TEXT,
                  rationale,
                  None,
                  rationale,
              ), False
  
imports: import random
  from typing import Optional
  from parlai.tasks.reasoning.agents import MWPStepsReasoningTeacher
  from parlai.tasks.reasoning.base import AbstractQuestionAnswer, AbstractReason, AbstractReasoningTeacher
  from parlai.tasks.reasoning.question_answer import MultipleChoiceQuestionAnswer
  from parlai.tasks.reasoning.reason_types.step_by_step import StepByStepReason
  from parlai.core.opt import Opt
  from parlai.core.params import ParlaiParser
  from parlai.core.teachers import DialogTeacher
  from parlai.utils.io import PathManager
  from parlai.tasks.aqua.build import build
  import os
  import copy
  import json
label_desc: Use image node_id 2 for calling a global function with example usage: setup_data(path) without return types