class_docstr: Tracks pipeline progress and estimates time to completion 
code: def on_receive_work(self, num_jobs, num_received):
      self.num_jobs = num_jobs
      self.num_received = num_received
      if self.end_times is None:
          # One extra element at the beginning for the start time
          self.end_times = numpy.zeros(1 + num_jobs)
          self.end_times[0] = self.elapsed_time()
      self.end_times[num_received] = self.elapsed_time()
      self.update_multiprocessing()
  
file_path: CellProfiler/src/frontend/cellprofiler/gui/preferences_view/_progress_watcher.py
imports: import time
  import numpy
  import wx
label_desc: Use image node_id 7 for calling the ProgressWatcher obj's underlying member method code with example usage: obj.on_receive_work(num_jobs, num_received) without return types