class_docstr: Abstract teacher that wraps around another teacher.
  
  This teacher allows for manipulating the fields returned by the inner teacher, in
  the abstract self._edit_action() method that is called during self.act(). The inner
  teacher must subclass FixedDialogTeacher in order to make use of that teacher's
  .get_orig_action() and .process_action() methods.
docstr: Edit and return the input action.
  
  The input action typically comes from the inner teacher's .get_orig_action()
  method.
docstr_tok: ["Edit","and","return","the","input","action",".","The","input","action","typically","comes","from","the","inner","teacher","'s",".get_orig_action","(",")","method","."]
code: def _edit_action(self, act: Message) -> Message:
      """
      Edit and return the input action.
  
      The input action typically comes from the inner teacher's .get_orig_action()
      method.
      """
      raise NotImplementedError(
          "Abstract class: user must implement the _edit_action() method"
      )
  
imports: from typing import Optional
  from parlai.core.params import ParlaiParser
  import copy
  from abc import ABC
  from parlai.core.agents import create_agent_from_shared
  from parlai.core.message import Message
  from parlai.core.opt import Opt
  from parlai.core.teachers import create_task_agent_from_taskname, FixedDialogTeacher, Teacher
  from parlai.utils.misc import warn_once
label_desc: Use image node_id 4 for calling the AbstractWrapperTeacher obj's underlying member method code with example usage: obj._edit_action(act) without return types