code: def _async_tqdm(*args, **kwargs):
    
    with tqdm_lib.tqdm(*args, **kwargs) as pbar:
      pbar = _TqdmPbarAsync(pbar)
      yield pbar
      pbar.clear()  # pop pbar from the active list of pbar
      print()
docs: Wrapper around Tqdm which can be updated in threads.
  
    Usage:
  
    ```
    with utils.async_tqdm(...) as pbar:
      # pbar can then be modified inside a thread
      # pbar.update_total(3)
      # pbar.update()
    ```
  
    Args:
      *args: args of tqdm
      **kwargs: kwargs of tqdm
  
    Yields:
      pbar: Async pbar which can be shared between threads.