class_docstr: Thin wrapper around tqdm to handle soft imports.
class_docstr_tok: ["Thin","wrapper","around","tqdm","to","handle","soft","imports","."]
code: def block_until_complete(self, remaining: List[ObjectRef]) -> None:
      t = threading.current_thread()
      while remaining:
          done, remaining = ray.wait(
              remaining, fetch_local=False, timeout=0.1
          )
          self.update(len(done))
  
          with _canceled_threads_lock:
              if t in _canceled_threads:
                  break
  
file_path: ray/python/ray/data/_internal/progress_bar.py
imports: import threading
  from typing import Any, List, Optional
  import ray
  from ray.experimental import tqdm_ray
  from ray.types import ObjectRef
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 2 for calling the ProgressBar obj's underlying member method code with example usage: obj.block_until_complete(remaining) without return types