code: def notify_downloaded(self) -> None:
      with self._lock:
          self._n_files_downloaded += 1
          if self._n_files_downloaded == self._nfiles:
              self._termlog(
                  f"  {self._nfiles} of {self._nfiles} files downloaded.  ",
                  # ^ trailing spaces to wipe out ellipsis from previous logs
                  newline=True,
              )
              self._last_log_time = self._clock()
          elif self._clock() - self._last_log_time > 0.1:
              self._spinner_index += 1
              spinner = r"-\|/"[self._spinner_index % 4]
              self._termlog(
                  f"{spinner} {self._n_files_downloaded} of {self._nfiles} files downloaded...\r",
                  newline=False,
              )
              self._last_log_time = self._clock()
  
imports: import multiprocessing.dummy
  import time
  from typing import Callable
  from wandb.errors.term import termlog
label_desc: Use image node_id 2 for calling the ArtifactDownloadLogger obj's underlying member method code with example usage: obj.notify_downloaded() without return types