Registry / workflow / tqdm-joblib

tqdm-joblib

JSON →
library0.0.5pypypiunverified

tqdm-joblib is a Python library that provides a context manager to easily integrate `tqdm` progress bars with `joblib.Parallel` execution. It addresses the challenge of displaying accurate and non-interfering progress updates when performing parallel computations with `joblib`. The current version is 0.0.5, and it appears to be actively maintained with recent releases.

pip install tqdm-joblib
INSTALL
IMPORT
SIG · TQDM-JOBLIB
T
tqdm-joblib
workflowpythonv0.0.5
Install
1.8s avg
Import
Disk
16MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.0.5 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 18.3MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 1.8s · import 0.000s · 19MB
16MB installed
● package 16MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

tqdm_joblib
import tqdm_joblib
import tqdm_joblib

This quickstart demonstrates how to use the `tqdm_joblib` context manager to wrap a `joblib.Parallel` call, automatically adding a progress bar for the parallel execution. The `desc` and `total` parameters are passed directly to `tqdm`.

from math import sqrt from joblib import Parallel, delayed from tqdm_joblib import tqdm_joblib def calculate_sqrt(x): # Simulate some work # time.sleep(0.01) # Uncomment to make tasks longer return sqrt(x ** 2) # Using tqdm_joblib as a context manager with tqdm_joblib(desc="My calculation", total=100) as progress_bar: results = Parallel(n_jobs=2)(delayed(calculate_sqrt)(i) for i in range(100)) print(f"First 5 results: {results[:5]}")
Debug
Known issues
gotchaWhen using `tqdm`'s `logging_redirect_tqdm` with `joblib.Parallel`, logging output from parallel processes can interfere with progress bar updates, causing them to 'jump' or become unreadable. This is a general issue with multiprocessing and `tqdm`'s logging redirection.
fix
Consider custom logging handlers with explicit locks for parallel processes, or use `tqdm.write()` from within parallel tasks if possible, ensuring it's properly configured for multiprocessing.
affects: All versions
gotchaAttempting to create multiple independent `tqdm` progress bars directly within each `joblib` worker process (without `tqdm-joblib`) can lead to overlapping and garbled output in the console. `tqdm-joblib` is designed to centralize and correctly display a single progress bar for the entire `Parallel` operation.
fix
Always use the `tqdm_joblib` context manager as shown in the quickstart. If multiple independent progress bars are strictly needed in complex scenarios, consider assigning `position` arguments to each `tqdm` instance and ensuring proper locking mechanisms.
affects: All versions
gotchaJoblib's default backend (`loky` since version 0.12) generally handles multiprocessing robustly. However, if explicitly using the `multiprocessing` backend (not recommended for most cases) with certain third-party libraries (e.g., some NumPy/OpenBLAS configurations), it can lead to crashes or deadlocks due to shared memory conflicts.
fix
Ensure you are using `joblib` version 0.12 or newer, which defaults to the `loky` backend. If issues persist, try setting the `JOBLIB_START_METHOD` environment variable to 'forkserver' (on non-Windows systems) or `backend='threading'` if your tasks are I/O bound.
affects: Mainly older joblib versions or specific `backend='multiprocessing'` usage.
Upgrade
Version history
0.0.5latest on PyPI · released Aug 17, 2025
Audit
Dependencies
tqdmrequiredProvides the progress bar functionality.
joblibrequiredProvides the parallel execution framework.
Agent activity
42 hits · last 30 days
node
38
Amazon
1
OpenAI (training)
1
Resources
tqdm-joblib — pip install tqdm-joblib · libregistry