code: def __init__(self, expr):
      self.eval_wait = threading.Event()
      self.reset_wait = threading.Event()
      self.g = Evaler.PostableIterator(self.eval_wait)
      self.expr = expr
      self.eval_return, self.continue_thread = (
          None,
          None,
      )  # define in __init__
      self.reset()
  
      self.th = threading.Thread(
          target=self._runner, daemon=True, name="evaler"
      )
      self.th.start()
      self.running = True
  
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 1 to create a new Evaler object  with example: obj = Evaler(expr)