class_docstr: A negotiation teacher that loads the CaSiNo data from
  https://github.com/kushalchawla/CaSiNo.
  
  Each dialogue is converted into two datapoints, one from the perspective of each
  participant.
code: def _setup_data(self, data_path):
      print("loading: " + data_path)
      with PathManager.open(data_path) as data_file:
          dialogues = json.load(data_file)
  
      episodes = []
      for dialogue in dialogues:
          # divide the dialogue into two perspectives, one for each participant
          episode = copy.deepcopy(dialogue)
          episode[
              "perspective"
          ] = "mturk_agent_1"  # id of the agent whose perspective will be used in this dialog
          episodes.append(episode)
  
          episode = copy.deepcopy(dialogue)
          episode[
              "perspective"
          ] = "mturk_agent_2"  # id of the agent whose perspective will be used in this dialog
          episodes.append(episode)
  
      self.episodes = episodes
  
      # add dummy data to ensure that every chat begins with a teacher utterance (THEM) and ends at the agent's utterance (YOU). This is done for uniformity while parsing the data. It makes the code simpler and easier to read than DealNoDeal counterpart.
      for ix, episode in enumerate(self.episodes):
          chat_logs = episode["chat_logs"]
          perspective = episode["perspective"]
  
          if chat_logs[0]["id"] == perspective:
              # chat must start with a teacher; add dummy utterance
              dummy_utterance = {
                  "text": "<DUMMY>",
                  "task_data": {},
                  "id": "mturk_agent_1"
                  if perspective == "mturk_agent_2"
                  else "mturk_agent_2",
              }
  
              chat_logs = [dummy_utterance] + chat_logs
  
          if chat_logs[-1]["id"] != perspective:
              # chat must end with the agent; add dummy utterance
              dummy_utterance = {
                  "text": "<DUMMY>",
                  "task_data": {},
                  "id": "mturk_agent_1"
                  if perspective == "mturk_agent_1"
                  else "mturk_agent_2",
              }
  
              chat_logs = chat_logs + [dummy_utterance]
  
          self.episodes[ix]["chat_logs"] = chat_logs
  
imports: from parlai.core.teachers import Teacher
  from .build import build
  from parlai.utils.io import PathManager
  import json
  import os
  import random
  import copy
label_desc: Use image node_id 2 for calling the CasinoTeacher obj's underlying member method code with example usage: obj._setup_data(data_path) without return types