code: def run_with_periodic_output(
      f: Callable[[], Any], output: str
  ) -> None:
      done = threading.Event()
  
      def print_something() -> None:
          while not done.wait(60):
              print(output)
  
      print_thread = threading.Thread(
          target=print_something, daemon=True
      )
      print_thread.start()
  
      try:
          f()
      finally:
          done.set()
          print_thread.join()
  
imports: import sys
  import threading
  import time
  from typing import Any, Callable, Dict, List, Optional, Tuple
  import boto3
  import tqdm
  from botocore.exceptions import ClientError, WaiterError
  from determined.deploy.aws import constants
label_desc: Use image node_id 1 for calling a global function with example usage: run_with_periodic_output(f, output) without return types