code: def __next__(self):
      try:
          next_value = next(self.iterator_iter)
      except StopIteration as e:
          self.monitor.finish_loop()
          raise e
  
      now = time.time()
      if not self._started:
          self.__init_time = now - self._start_time
      else:
          self._beta_pow *= self._beta
          self._iter_time *= self._beta
          self._iter_time += (1 - self._beta) * (
              now - self._iter_start_time
          )
          if self._is_track:
              tracker().store(
                  "time.loop",
                  (now - self._iter_start_time)
                  / max(
                      1, tracker().global_step - self._iter_start_step
                  ),
              )
  
      self._iter_start_time = now
      self._iter_start_step = tracker().global_step
      self._started = True
  
      tracker().loop_count(next_value)
  
      return next_value
  
file_path: labml/client/labml/internal/monitor/loop.py
imports: import math
  import time
  from typing import Optional, Dict, TYPE_CHECKING, List, Collection
  from labml import logger
  from ..monitor.sections import LoopingSection
  from ..tracker import tracker_singleton
label_desc: Use image node_id 3 for calling the Loop obj's underlying member method code with example usage: obj.__next__() and returns: next_value