class_docstr: Abstract parent class for single turn safety teachers.
  
  Not meant to be a standalone teacher.
class_docstr_tok: ["Abstract","parent","class","for","single","turn","safety","teachers",".","Not","meant","to","be","a","standalone","teacher","."]
code: def __init__(self, opt, shared=None):
      build(opt["datapath"])  # download the data
      self.opt = opt
      self.data_path = os.path.join(
          opt["datapath"], "dialogue_safety", SINGLE_TURN_DATA
      )
  
      self.fixed_random = random.Random(42)
      self.round = opt["round"]
      self.label_candidates = [NOT_OK_CLASS, OK_CLASS]
  
      if shared and "data" in shared:
          self.data = shared["data"]
      else:
          self._setup_data(opt["datatype"])
  
      super().__init__(opt, shared)
      self.reset()
  
imports: from typing import Optional
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from abc import ABC, abstractmethod
  import os
  import random
  from parlai.core.message import Message
  from parlai.core.teachers import FixedDialogTeacher
  from .build import build
label_desc: Use image node_id 2 to create a new _BaseSafetyTeacher object from inherited base classes: FixedDialogTeacher, ABC with example: obj = _BaseSafetyTeacher(opt, shared)