class_docstr: Window node.
docstr: Process each window data.
docstr_tok: ["Process","each","window","data","."]
code: def process_step(self):
      """
      Process each window data.
      """
      self._time_profiler.record(self.uid, Event.queue_in)
      in_buffer = self._get_buffer()
      if in_buffer is None:
          return
  
      process_data = [
          in_buffer.get(key) for key in self._node_repr.inputs
      ]
      self._time_profiler.record(self.uid, Event.process_in)
      succ, outputs, msg = self._call(process_data)
      self._time_profiler.record(self.uid, Event.process_out)
      assert succ, msg
  
      size = len(self._node_repr.outputs)
      if size > 1:
          output_map = dict(
              (self._node_repr.outputs[i], outputs[i])
              for i in range(size)
          )
      elif size == 1:
          output_map = {}
          output_map[self._node_repr.outputs[0]] = outputs
      else:
          output_map = {}
  
      self._time_profiler.record(self.uid, Event.queue_out)
      self.data_to_next(output_map)
  
file_path: towhee/towhee/runtime/nodes/_window_base.py
imports: from typing import List, Dict
  from towhee.runtime.data_queue import Empty
  from towhee.runtime.time_profiler import Event
  from .node import Node
  from ._single_input import SingleInputMixin
label_desc: Use image node_id 8 for calling the WindowBase obj's underlying member method code with example usage: obj.process_step() without return types