def tqdm_dask(futures, **kwargs): notebook = is_kernel() futures = futures_of(futures) if not isinstance(futures, (set, list)): futures = [futures] if notebook: return TqdmNotebookProgress(futures, **kwargs) else: TqdmProgressBar(futures, **kwargs)
def progress(*futures, notebook=None, multi=True, complete=True, **kwargs): """Track progress of futures This operates differently in the notebook and the console * Notebook: This returns immediately, leaving an IPython widget on screen * Console: This blocks until the computation completes Parameters ---------- futures : Futures A list of futures or keys to track notebook : bool (optional) Running in the notebook or not (defaults to guess) multi : bool (optional) Track different functions independently (defaults to True) complete : bool (optional) Track all keys (True) or only keys that have not yet run (False) (defaults to True) Notes ----- In the notebook, the output of `progress` must be the last statement in the cell. Typically, this means calling `progress` at the end of a cell. Examples -------- >>> progress(futures) # doctest: +SKIP [########################################] | 100% Completed | 1.7s """ futures = futures_of(futures) if not isinstance(futures, (set, list)): futures = [futures] if notebook is None: notebook = is_kernel() # often but not always correct assumption if notebook: if multi: bar = MultiProgressWidget(futures, complete=complete, **kwargs) else: bar = ProgressWidget(futures, complete=complete, **kwargs) return bar else: TextProgressBar(futures, complete=complete, **kwargs)
def test_is_kernel(): pytest.importorskip("IPython") assert is_kernel() is False
def test_is_kernel(): pytest.importorskip('IPython') assert is_kernel() is False