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: Act on the previous observation.
  
  Normally, the inner teacher would call .get_orig_action() and .process_action();
  here, we insert an ._edit_action() method in between these two methods in order
  to allow for arbitrary manipulation of the action before it is registered and
  processed further by the inner teacher.
docstr_tok: ["Act","on","the","previous","observation",".","Normally",",","the","inner","teacher","would","call",".get_orig_action","(",")","and",".process_action","(",")",";","here",",","we","insert","an","._edit_action","(",")","method","in","between","these","two","methods","in","order","to","allow","for","arbitrary","manipulation","of","the","action","before","it","is","registered","and","processed","further","by","the","inner","teacher","."]
code: def act(self):
      """
      Act on the previous observation.
  
      Normally, the inner teacher would call .get_orig_action() and .process_action();
      here, we insert an ._edit_action() method in between these two methods in order
      to allow for arbitrary manipulation of the action before it is registered and
      processed further by the inner teacher.
      """
      orig_action = self.task.get_orig_action()
      edited_action = self._edit_action(orig_action)
      processed_action = self.task.process_action(edited_action)
      return processed_action
  
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 3 for calling the AbstractWrapperTeacher obj's underlying member method code with example usage: obj.act() and returns: processed_action