|
3 | 3 | # AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/03a_parallel.ipynb. |
4 | 4 |
|
5 | 5 | # %% auto #0 |
6 | | -__all__ = ['threaded', 'startthread', 'startproc', 'parallelable', 'ThreadPoolExecutor', 'ProcessPoolExecutor', 'parallel', |
7 | | - 'parallel_async', 'bg_task', 'run_procs', 'parallel_gen'] |
| 6 | +__all__ = ['threaded', 'startthread', 'startproc', 'parallelable', 'ThreadPoolExecutor', 'ProcessPoolExecutor', |
| 7 | + 'import_progress_bar', 'parallel', 'parallel_async', 'bg_task', 'run_procs', 'parallel_gen'] |
8 | 8 |
|
9 | 9 | # %% ../nbs/03a_parallel.ipynb #569d18c6 |
10 | 10 | from .imports import * |
@@ -118,13 +118,16 @@ def map(self, f, items, *args, timeout=None, chunksize=1, **kwargs): |
118 | 118 | except Exception as e: self.on_exc(e) |
119 | 119 |
|
120 | 120 | # %% ../nbs/03a_parallel.ipynb #f5327cb3 |
121 | | -try: from fastprogress import progress_bar |
122 | | -except: progress_bar = None |
| 121 | +def import_progress_bar(): |
| 122 | + try: from fastprogress import progress_bar |
| 123 | + except ImportError: return None |
| 124 | + return progress_bar |
123 | 125 |
|
124 | 126 | # %% ../nbs/03a_parallel.ipynb #529e1bb1 |
125 | 127 | def parallel(f, items, *args, n_workers=defaults.cpus, total=None, progress=None, pause=0, |
126 | 128 | method=None, threadpool=False, timeout=None, chunksize=1, **kwargs): |
127 | 129 | "Applies `func` in parallel to `items`, using `n_workers`" |
| 130 | + progress_bar = import_progress_bar() |
128 | 131 | kwpool = {} |
129 | 132 | if threadpool: pool = ThreadPoolExecutor |
130 | 133 | else: |
@@ -188,6 +191,7 @@ def _done_pg(queue, items): return (queue.get() for _ in items) |
188 | 191 | # %% ../nbs/03a_parallel.ipynb #1122caee |
189 | 192 | def parallel_gen(cls, items, n_workers=defaults.cpus, progress=True, **kwargs): |
190 | 193 | "Instantiate `cls` in `n_workers` procs & call each on a subset of `items` in parallel." |
| 194 | + progress_bar = import_progress_bar() |
191 | 195 | if not parallelable('n_workers', n_workers): n_workers = 0 |
192 | 196 | if n_workers==0: |
193 | 197 | yield from enumerate(list(cls(**kwargs)(items))) |
|
0 commit comments