class_docstr: Handles/stores incoming dataset and provides window-based statistics.
  
  .. testcode::
      :skipif: True
  
      win_stats = WindowStat("level", 3)
      win_stats.push(5.0)
      win_stats.push(7.0)
      win_stats.push(7.0)
      win_stats.push(10.0)
      # Expect 8.0 as the mean of the last 3 values: (7+7+10)/3=8.0
      print(win_stats.mean())
  
  .. testoutput::
  
      8.0
docstr: Pushes a new value/object into the data buffer.
docstr_tok: ["Pushes","a","new","value\/object","into","the","data","buffer","."]
code: def push(self, obj) -> None:
      """Pushes a new value/object into the data buffer."""
      # Insert object at current index.
      self.items[self.idx] = obj
      # Increase insertion index by 1.
      self.idx += 1
      # Increase lifetime count by 1.
      self.count += 1
      # Fix index in case of rollover.
      self.idx %= len(self.items)
  
file_path: ray/rllib/utils/metrics/window_stat.py
imports: import numpy
label_desc: Use image node_id 2 for calling the WindowStat obj's underlying member method code with example usage: obj.push(obj) without return types