code: def download_all(
      assets_list, num_processes=16, download_dir="GSO_raw"
  ):
      download_dir = pathlib.Path(download_dir)
      download_dir.mkdir(parents=True, exist_ok=True)
      download_func = functools.partial(
          download_asset, download_dir=download_dir
      )
      with tqdm.tqdm(total=len(assets_list)) as pbar:
          with multiprocessing.Pool(
              num_processes, maxtasksperchild=1
          ) as pool:
              promise = pool.imap_unordered(download_func, assets_list)
              for _ in promise:
                  pbar.update(1)
  
file_path: kubric/kubric/scripts/download_hdri_haven.py
imports: import argparse
  import copy
  import functools
  import logging
  import multiprocessing
  import pathlib
  import shutil
  import tarfile
  import urllib.error
  import urllib.parse
  import urllib.request
  import requests
  import tqdm
  from kubric import file_io
  from kubric.kubric_typing import PathLike
label_desc: Use image node_id 3 for calling a global function with example usage: download_all(assets_list, num_processes, download_dir) without return types