class_docstr: Object representing a complex data producer.
class_docstr_tok: ["Object","representing","a","complex","data","producer","."]
code: def run_data_creation(self, timer_event):
      if self._count >= self._num_iters:
          return
  
      # Uncomment to mimic a long-running computation
      # time.sleep(3)
      image_data = self._update_image_data(self._count)
      line_data = self._update_line_data(self._count)
      self._count += 1
  
      data_dict = {
          "image": image_data,
          "line": line_data,
      }
      self.new_data.emit(data_dict)
  
imports: import time
  from math import sin, pi
  import numpy
  from PyQt5 import QtWidgets, QtCore
  from vispy.scene import SceneCanvas, visuals
  from vispy.app import use_app, Timer
label_desc: Use image node_id 2 for calling the DataSource obj's underlying member method code with example usage: obj.run_data_creation(timer_event) without return types