from tqdm import tqdm import ray def parallel_compute_with_bar(computations) -> list: def to_iterator(obj_ids): while obj_ids: done, obj_ids = ray.wait(obj_ids) yield ray.get(done[0]) ret = [] for x in tqdm(to_iterator(computations), total=len(computations)): ret.append(x) return ret