class_docstr: Report Manager Base class
  Inherited classes should override:
      * `_report_training`
      * `_report_step`
class_docstr_tok: ["Report","Manager","Base","class","Inherited","classes","should","override",":","*","`","_report_training","`","*","`","_report_step","`"]
docstr: Report stats of a step
  
  Args:
      lr(float): current learning rate
      patience(int): current patience
      step(int): current step
      train_stats(Statistics): training stats
      valid_stats(Statistics): validation stats
docstr_tok: ["Report","stats","of","a","step","Args",":","lr","(","float",")",":","current","learning","rate","patience","(","int",")",":","current","patience","step","(","int",")",":","current","step","train_stats","(","Statistics",")",":","training","stats","valid_stats","(","Statistics",")",":","validation","stats"]
code: def report_step(
      self, lr, patience, step, train_stats=None, valid_stats=None
  ):
      """
      Report stats of a step
  
      Args:
          lr(float): current learning rate
          patience(int): current patience
          step(int): current step
          train_stats(Statistics): training stats
          valid_stats(Statistics): validation stats
      """
      self._report_step(
          lr,
          patience,
          step,
          valid_stats=valid_stats,
          train_stats=train_stats,
      )
  
imports: import time
  from datetime import datetime
  import onmt
  from onmt.utils.logging import logger
label_desc: Use image node_id 6 for calling the ReportMgrBase obj's underlying member method code with example usage: obj.report_step(lr, patience, step, train_stats, valid_stats) without return types