code: def close_runs(ctx, hashes, yes):
      """Close failed/stalled Runs."""
      repo_path = ctx.obj["repo"]
      repo = Repo.from_path(repo_path)
  
      if len(hashes) == 0:
          click.echo("Please specify at least one Run to close.")
          exit(1)
  
      click.secho(
          f"This command will forcefully close {len(hashes)} Runs from Aim Repo '{repo_path}'. "
          f"Please make sure Runs are not active. Data corruption may occur otherwise."
      )
      if yes:
          confirmed = True
      else:
          confirmed = click.confirm("Do you want to proceed?")
      if not confirmed:
          return
  
      pool = ThreadPool(cpu_count(logical=False))
  
      for _ in tqdm.tqdm(
          pool.imap_unordered(repo._close_run, hashes),
          desc="Closing runs",
          total=len(hashes),
      ):
          pass
  
file_path: aim/aim/cli/runs/commands.py
imports: import click
  import os
  import tqdm
  from multiprocessing.pool import ThreadPool
  from psutil import cpu_count
  from aim.cli.runs.utils import match_runs, make_zip_archive, upload_repo_runs
  from aim.sdk.repo import Repo
label_desc: Use image node_id 7 for calling a global function with example usage: close_runs(ctx, hashes, yes) without return types