dtoolkit.util.parallelize#

dtoolkit.util.parallelize(func: Callable, jobs: Iterable, *, n_jobs: int = -1, verbose: int = 0, timeout: float = None, backend: Literal['loky', 'multiprocessing', 'threading'] = 'loky', require: Literal['sharedmem'] = None, mmap_mode: Literal[None, 'r+', 'r', 'w+', 'c'] = 'r', **kwargs)[source]#

Parallelize func to do jobs.

A sugary syntax wraps joblib.Parallel:

from functools import partial

from joblib import Parallel, delayed

func = delayed(partial(func, **kwargs))
Parallel(**parallel_kwargs)(map(func, jobs))
Parameters:
funcCallable
jobsIterable
n_jobs, verbose, timeout, backend, require, mmap_mode

See the documentation for joblib.Parallel for complete details on the keyword arguments.

**kwargs

See the documentation for func for complete details on the arguments.

Raises:
ModuleNotFoundError

If don’t have module named ‘joblib’.

Examples

>>> from dtoolkit.util import parallelize
>>> parallelize(lambda x: x ** 2, range(3))
[0, 1, 4]