code: def append_iter(self, iters, elapsed_time, X, Y, bo, final=False):
      self.iters.append(iters)
      self.times.append(elapsed_time)
      self.Xs.append(X)
      self.Ys.append(Y)
      self.offsets.append(X.shape[0])
  
      for i in range(len(self.data_savers)):
          if final:
              if self.clock[i] == -1:
                  self.clock[i] = 0
          elif self.clock[i] > 0:
              self.clock[i] += -1
          if self.clock[i] == 0:
              self.data_savers[i].save_data(
                  self.iters,
                  self.times,
                  self.offsets,
                  self.Xs,
                  self.Ys,
                  bo,
              )
              self.clock[i] = self.data_savers[i].interval
  
file_path: GPyOpt/GPyOpt/interface/output.py
imports: import numpy
label_desc: Use image node_id 2 for calling the OutputEng obj's underlying member method code with example usage: obj.append_iter(iters, elapsed_time, X, Y, bo, final) without return types