class_docstr: This version of SQuAD inherits from the core Dialog Teacher, which just requires it
  to define an iterator over its data `setup_data` in order to inherit basic metrics,
  a default `act` function.
  
  For SQuAD, this does not efficiently store the paragraphs in memory.
class_docstr_tok: ["This","version","of","SQuAD","inherits","from","the","core","Dialog","Teacher",",","which","just","requires","it","to","define","an","iterator","over","its","data","`","setup_data","`","in","order","to","inherit","basic","metrics",",","a","default","`","act","`","function",".","For","SQuAD",",","this","does","not","efficiently","store","the","paragraphs","in","memory","."]
code: def __init__(self, opt, shared=None):
      self.datatype = opt["datatype"]
      build(opt)
      if opt["datatype"].startswith("train"):
          suffix = "train"
      else:
          suffix = "dev"
      opt["datafile"] = os.path.join(
          opt["datapath"], "SQuAD", suffix + "-v1.1.json"
      )
      self.id = "squad"
      super().__init__(opt, shared)
  
imports: import copy
  import json
  import os
  from typing import Optional
  from parlai.core.params import ParlaiParser
  from parlai.core.message import Message
  from parlai.core.opt import Opt
  from parlai.core.teachers import FixedDialogTeacher, DialogTeacher, ParlAIDialogTeacher
  from parlai.tasks.wrapper.agents import AbstractWrapperTeacher
  from parlai.utils.io import PathManager
  from .build import build
label_desc: Use image node_id 1 to create a new DefaultTeacher object from inherited base classes: DialogTeacher with example: obj = DefaultTeacher(opt, shared)