code: def __init__(
      self,
      repo: Optional[str] = None,
      experiment: Optional[str] = None,
      flush_frequency: int = 0,  # unused
      block_termination: bool = True,  # unused
      run: Optional[str] = None,
      system_tracking_interval: Optional[
          int
      ] = DEFAULT_SYSTEM_TRACKING_INT,
  ):
      self._repo = Repo.from_path(repo) if repo else Repo.default_repo()
      self._repo_path = self._repo.path
      self._run = Run(
          run,
          repo=self._repo,
          experiment=experiment,
          system_tracking_interval=system_tracking_interval,
      )
      self._run_hash = self._run.hash
      self.active = True
  
      Session.sessions.setdefault(self._repo_path, [])
      Session.sessions[self._repo_path].append(self)
  
      # Bind signal listeners
      self._set_exit_handlers()
  
imports: import os
  import atexit
  import signal
  import threading
  from typing import Optional
  from aim.ext.exception_resistant import exception_resistant
  from aim.sdk.legacy.deprecation_warning import deprecated
  from aim.ext.resource.configs import DEFAULT_SYSTEM_TRACKING_INT
  from aim.ext.resource.tracker import ResourceTracker
  from aim.sdk.repo import Repo
  from aim.sdk.run import Run
label_desc: Use image node_id 1 to create a new Session object  with example: obj = Session(repo, experiment, flush_frequency, block_termination, run, system_tracking_interval)