code: def global_step(self) -> int:
      if self.__global_step is not None:
          return self.__global_step
  
      global_step = 0
      if self.__start_global_step is not None:
          global_step = self.__start_global_step
  
      if self.__is_looping:
          return global_step + self.__loop_counter
  
      if self.__last_global_step is not None:
          return self.__last_global_step
  
      return global_step
  
imports: from pathlib import PurePath
  from typing import Dict, List, Optional, Callable, Union, Tuple
  from labml import logger
  from .indicators import Indicator
  from .indicators.factory import load_indicator_from_dict, create_default_indicator
  from .indicators.numeric import Scalar
  from .namespace import Namespace
  from .writers import Writer
  from .writers.screen import ScreenWriter
  from ..None import util
  from ..lab import lab_singleton, LabYamlNotfoundError
  from ..logger import LogPart
  from ..util import strings
  from ..util.colors import StyleCode
label_desc: Use image node_id 9 for calling the Tracker obj's underlying member method code with example usage: obj.global_step() and returns: global_step, self, unknown, self