code: def __init__(self, run: "Run"):
      self.meta_tree = run.meta_tree
      self.read_only = run.read_only
      self.contexts: Dict[Context, int] = dict()
  
      if not self.read_only:
          # remote tracking creates dedicated thread for tracking, so don't need to create another one here
          self._non_blocking = (
              os.getenv(AIM_ENABLE_TRACKING_THREAD, False)
              and not run.repo.is_remote_repo
          )
  
          self.hash = run.hash
          self.repo = run.repo
          self.meta_run_tree = run.meta_run_tree
          self.series_run_trees = run.series_run_trees
          self.sequence_infos: Dict[
              Selector, SequenceInfo
          ] = defaultdict(SequenceInfo)
  
          self._preload_sequence_infos()
  
imports: import datetime
  import os
  import logging
  from collections import defaultdict
  from copy import deepcopy
  from typing import Dict, Tuple, TYPE_CHECKING
  import pytz
  from aim.sdk.configs import AIM_ENABLE_TRACKING_THREAD
  from aim.sdk.num_utils import is_number, convert_to_py_number
  from aim.sdk.utils import get_object_typename, check_types_compatibility
  from aim.storage.hashing import hash_auto
  from aim.storage.context import Context
  from aim.storage.object import CustomObject
  from aim.storage.types import AimObject
label_desc: Use image node_id 2 to create a new RunTracker object  with example: obj = RunTracker(run)