code: def __init__(
      self,
      start_run_cb,
      is_queue_cb,
      name="queue",
      init_cb=None,
      can_start_cb=None,
      wait_for_running_cb=None,
      sync_state_cb=None,
      cleanup_cb=None,
      max_startable_runs=None,
      run_once=False,
      wait_for_running=False,
      gpus=None,
      poll_interval=DEFAULT_POLL_INTERVAL,
      run_status_lock_timeout=DEFAULT_RUN_STATUS_LOCK_TIMEOUT,
  ):
      self.start_run_cb = start_run_cb
      self.is_queue_cb = is_queue_cb
      self.name = name
      self.init_cb = init_cb
      self.can_start_cb = can_start_cb
      self.wait_for_running_cb = wait_for_running_cb
      self.sync_state_cb = sync_state_cb
      self.cleanup_cb = cleanup_cb
      self.max_startable_runs = max_startable_runs
      self.run_once = run_once
      self.wait_for_running = wait_for_running
      self.gpus = gpus
      self.poll_interval = poll_interval
      self.run_id = os.environ["RUN_ID"]
      self._logged_gpu_mismatch = set()
      self.waiting = set()
      self.logged_waiting = False
      self.run_status_lock = locklib.Lock(
          locklib.RUN_STATUS, timeout=run_status_lock_timeout
      )
      self.started = 0
  
imports: import logging
  import os
  import signal
  import time
  from guild import lock
  from guild import op_util
  from guild import util
  from guild import var
label_desc: Use image node_id 1 to create a new StateBase object  with example: obj = StateBase(start_run_cb, is_queue_cb, name, init_cb, can_start_cb, wait_for_running_cb, sync_state_cb, cleanup_cb, max_startable_runs, run_once, wait_for_running, gpus, poll_interval, run_status_lock_timeout)