code: def post(
      self,
      event_data: EventData = None,
      ended=False,
      continue_thread=True,
  ):
      if not self.running:
          utils.debug_log("post was called when Evaler is not running")
          return None, False
      self.eval_return.reset()
      self.g.post(event_data, ended)
      self.eval_wait.wait()
      self.eval_wait.clear()
      # save result before it would get reset
      eval_return = self.eval_return
      self.reset_wait.set()
      self.continue_thread = continue_thread
      if isinstance(eval_return.result, Iterator):
          eval_return.result = list(eval_return.result)
      return eval_return
  
file_path: tensorwatch/tensorwatch/evaler.py
imports: import threading, sys, logging
  from collections.abc import Iterator
  from .lv_types import EventData
  from functools import *
  from itertools import *
  from statistics import *
  import numpy
  from .evaler_utils import *
label_desc: Use image node_id 5 for calling the Evaler obj's underlying member method code with example usage: obj.post(event_data, ended, continue_thread) and returns: eval_return, None,  False