code: def _print_progress(
      self, iteration, n_iter, cost=None, time_interval=10
  ):
      if self.print_progress > 0:
          s = "\rIteration: %d/%d" % (iteration, n_iter)
          if cost:
              s += " | Cost %.2f" % cost
          if self.print_progress > 1:
              if not hasattr(self, "ela_str_"):
                  self.ela_str_ = "00:00:00"
              if not iteration % time_interval:
                  ela_sec = time() - self._init_time
                  self.ela_str_ = self._to_hhmmss(ela_sec)
              s += " | Elapsed: %s" % self.ela_str_
              if self.print_progress > 2:
                  if not hasattr(self, "eta_str_"):
                      self.eta_str_ = "00:00:00"
                  if not iteration % time_interval:
                      eta_sec = (
                          ela_sec / float(iteration)
                      ) * n_iter - ela_sec
                      if eta_sec < 0.0:
                          eta_sec = 0.0
                      self.eta_str_ = self._to_hhmmss(eta_sec)
                  s += " | ETA: %s" % self.eta_str_
          stderr.write(s)
          stderr.flush()
  
file_path: mlxtend/mlxtend/_base/_iterative_model.py
imports: from sys import stderr
  from time import time
  import numpy
label_desc: Use image node_id 3 for calling the _IterativeModel obj's underlying member method code with example usage: obj._print_progress(iteration, n_iter, cost, time_interval) without return types