code: def __init__(
      self,
      api: "internal_api.Api",
      tempdir: "tempfile.TemporaryDirectory",
      request_queue: "queue.Queue[Event]",
      output_queue: "queue.Queue[step_upload.Event]",
      stats: "stats.Stats",
  ) -> None:
      self._api = api
      self._tempdir = tempdir
      self._request_queue = request_queue
      self._output_queue = output_queue
      self._stats = stats
  
      self._thread = threading.Thread(target=self._thread_body)
      self._thread.daemon = True
  
imports: import concurrent.futures
  import functools
  import os
  import queue
  import shutil
  import threading
  from typing import TYPE_CHECKING, NamedTuple, Optional, Union, cast
  from wandb.filesync import step_upload
  from wandb.sdk.lib import filesystem, runid
  from wandb.sdk.lib.paths import LogicalPath
label_desc: Use image node_id 1 to create a new StepChecksum object  with example: obj = StepChecksum(api, tempdir, request_queue, output_queue, stats)