Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion fastcore/_modidx.py
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,6 @@
'fastcore.parallel._done_pg': ('parallel.html#_done_pg', 'fastcore/parallel.py'),
'fastcore.parallel._f_pg': ('parallel.html#_f_pg', 'fastcore/parallel.py'),
'fastcore.parallel.bg_task': ('parallel.html#bg_task', 'fastcore/parallel.py'),
'fastcore.parallel.import_progress_bar': ('parallel.html#import_progress_bar', 'fastcore/parallel.py'),
'fastcore.parallel.parallel': ('parallel.html#parallel', 'fastcore/parallel.py'),
'fastcore.parallel.parallel_async': ('parallel.html#parallel_async', 'fastcore/parallel.py'),
'fastcore.parallel.parallel_gen': ('parallel.html#parallel_gen', 'fastcore/parallel.py'),
Expand Down
16 changes: 6 additions & 10 deletions fastcore/parallel.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/03a_parallel.ipynb.

# %% auto #0
__all__ = ['threaded', 'startthread', 'startproc', 'parallelable', 'ThreadPoolExecutor', 'ProcessPoolExecutor',
'import_progress_bar', 'parallel', 'parallel_async', 'bg_task', 'run_procs', 'parallel_gen']
__all__ = ['threaded', 'startthread', 'startproc', 'parallelable', 'ThreadPoolExecutor', 'ProcessPoolExecutor', 'parallel',
'parallel_async', 'bg_task', 'run_procs', 'parallel_gen']

# %% ../nbs/03a_parallel.ipynb #569d18c6
from .imports import *
Expand Down Expand Up @@ -121,17 +121,12 @@ def map(self, f, items, *args, timeout=None, chunksize=1, **kwargs):
try: return super().map(_g, items, timeout=timeout, chunksize=chunksize)
except Exception as e: self.on_exc(e)

# %% ../nbs/03a_parallel.ipynb #f5327cb3
def import_progress_bar():
try: from fastprogress import progress_bar
except ImportError: return None
return progress_bar

# %% ../nbs/03a_parallel.ipynb #529e1bb1
def parallel(f, items, *args, n_workers=defaults.cpus, total=None, progress=None, pause=0,
method=None, threadpool=False, timeout=None, chunksize=1, **kwargs):
"Applies `func` in parallel to `items`, using `n_workers`"
progress_bar = import_progress_bar()
try: from fastprogress import progress_bar
except ImportError: return None
kwpool = {}
if threadpool: pool = ThreadPoolExecutor
else:
Expand Down Expand Up @@ -196,7 +191,8 @@ def _done_pg(queue, items): return (queue.get() for _ in items)
# %% ../nbs/03a_parallel.ipynb #1122caee
def parallel_gen(cls, items, n_workers=defaults.cpus, progress=True, **kwargs):
"Instantiate `cls` in `n_workers` procs & call each on a subset of `items` in parallel."
progress_bar = import_progress_bar()
try: from fastprogress import progress_bar
except ImportError: return None
if not parallelable('n_workers', n_workers): n_workers = 0
if n_workers==0:
yield from enumerate(list(cls(**kwargs)(items)))
Expand Down
28 changes: 4 additions & 24 deletions nbs/03a_parallel.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -478,28 +478,6 @@
"show_doc(ProcessPoolExecutor, title_level=4)"
]
},
{
"cell_type": "markdown",
"id": "b1d7c809",
"metadata": {},
"source": [
"We define `import_progress_bar` to lazily import, `fastprogress` depends on `fasthtml` and takes about 1 sec to load"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f5327cb3",
"metadata": {},
"outputs": [],
"source": [
"#| export\n",
"def import_progress_bar():\n",
" try: from fastprogress import progress_bar\n",
" except ImportError: return None\n",
" return progress_bar"
]
},
{
"cell_type": "code",
"execution_count": null,
Expand All @@ -511,7 +489,8 @@
"def parallel(f, items, *args, n_workers=defaults.cpus, total=None, progress=None, pause=0,\n",
" method=None, threadpool=False, timeout=None, chunksize=1, **kwargs):\n",
" \"Applies `func` in parallel to `items`, using `n_workers`\"\n",
" progress_bar = import_progress_bar()\n",
" try: from fastprogress import progress_bar\n",
" except ImportError: return None\n",
" kwpool = {}\n",
" if threadpool: pool = ThreadPoolExecutor\n",
" else:\n",
Expand Down Expand Up @@ -1006,7 +985,8 @@
"#| export\n",
"def parallel_gen(cls, items, n_workers=defaults.cpus, progress=True, **kwargs):\n",
" \"Instantiate `cls` in `n_workers` procs & call each on a subset of `items` in parallel.\"\n",
" progress_bar = import_progress_bar()\n",
" try: from fastprogress import progress_bar\n",
" except ImportError: return None\n",
" if not parallelable('n_workers', n_workers): n_workers = 0\n",
" if n_workers==0:\n",
" yield from enumerate(list(cls(**kwargs)(items)))\n",
Expand Down
Loading