|
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 * |
@@ -122,13 +122,16 @@ def map(self, f, items, *args, timeout=None, chunksize=1, **kwargs): |
122 | 122 | except Exception as e: self.on_exc(e) |
123 | 123 |
|
124 | 124 | # %% ../nbs/03a_parallel.ipynb #f5327cb3 |
125 | | -try: from fastprogress import progress_bar |
126 | | -except: progress_bar = None |
| 125 | +def import_progress_bar(): |
| 126 | + try: from fastprogress import progress_bar |
| 127 | + except ImportError: return None |
| 128 | + return progress_bar |
127 | 129 |
|
128 | 130 | # %% ../nbs/03a_parallel.ipynb #529e1bb1 |
129 | 131 | def parallel(f, items, *args, n_workers=defaults.cpus, total=None, progress=None, pause=0, |
130 | 132 | method=None, threadpool=False, timeout=None, chunksize=1, **kwargs): |
131 | 133 | "Applies `func` in parallel to `items`, using `n_workers`" |
| 134 | + progress_bar = import_progress_bar() |
132 | 135 | kwpool = {} |
133 | 136 | if threadpool: pool = ThreadPoolExecutor |
134 | 137 | else: |
@@ -192,6 +195,7 @@ def _done_pg(queue, items): return (queue.get() for _ in items) |
192 | 195 | # %% ../nbs/03a_parallel.ipynb #1122caee |
193 | 196 | def parallel_gen(cls, items, n_workers=defaults.cpus, progress=True, **kwargs): |
194 | 197 | "Instantiate `cls` in `n_workers` procs & call each on a subset of `items` in parallel." |
| 198 | + progress_bar = import_progress_bar() |
195 | 199 | if not parallelable('n_workers', n_workers): n_workers = 0 |
196 | 200 | if n_workers==0: |
197 | 201 | yield from enumerate(list(cls(**kwargs)(items))) |
|
0 commit comments