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 __init__(self, opt, shared=None):
      super().__init__(opt, shared)
      self.datatype = opt["datatype"].split(":")[0]
      self.datatype_ = opt["datatype"]
      self.random = self.datatype_ == "train"
      build(opt)
  
      filename = self.datatype
      data_path = os.path.join(
          opt["datapath"], "casino", "casino_" + filename + ".json"
      )
  
      if shared and "data" in shared:
          self.episodes = shared["episodes"]
      else:
          self._setup_data(data_path)
      print(f"Total episodes: {self.num_episodes()}")
  
      # for ordered data in batch mode (especially, for validation and
      # testing), each teacher in the batch gets a start index and a step
      # size so they all process disparate sets of the data
      self.step_size = opt.get("batchsize", 1)
      self.data_offset = opt.get("batchindex", 0)
  
      self.reset()
  
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 1 to create a new CasinoTeacher object from inherited base classes: Teacher with example: obj = CasinoTeacher(opt, shared)