tqdm-multiprocess
Easy multiprocessing with tqdm and logging redirected to main process.
What it is and what it does
tqdm-multiprocess wraps Python's multiprocessing pool to coordinate progress bars across worker processes. It uses queues to collect tqdm updates and log messages from subprocesses and displays them cleanly in the main process, along with a global aggregate progress bar. Each worker can display multiple nested progress bars, and all logging from workers is redirected to the main process's root logger.
The package requires you to pass worker functions that accept tqdm_func and global_tqdm as extra parameters, and you must manually initialize tqdm objects with a total count and call update() rather than using tqdm's iterator mode. The design trades some convenience for the ability to show real-time progress from parallel work without overwhelming the main process.
Use it for:
- Monitor progress of a batch of independent long-running tasks across multiple CPU cores with per-task and aggregate progress bars.
- Redirect logging from worker processes to a single log file or console while maintaining tqdm progress display.
- Track nested loops in parallel workers (e.g., outer loop per task, inner loops within each task) with separate progress bars for each level.
- Aggregate progress reporting for data processing pipelines that spawn multiple worker processes.
- Debug multiprocessing jobs by collecting and displaying worker logs alongside progress updates in the main process.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Displays multiple tqdm progress bars from worker processes in a multiprocessing pool, with logging and aggregate progress monitoring routed through the main process.
No—the package is abandoned (last commit 2021-01-06, no releases since 2020-10-27) and will not receive maintenance or compatibility updates. While it has low install friction and permissive licensing, the lack of active maintenance poses a risk for projects targeting modern Python versions or expecting bug fixes. Consider alternatives that are actively maintained if you need multiprocessing progress tracking.
Install
tqdm-multiprocess on PyPI
pip
pip install tqdm-multiprocessuv
uv add tqdm-multiprocesspoetry
poetry add tqdm-multiprocessInstalling tqdm-multiprocess
Before you install
Low friction installation with only two runtime dependencies (tqdm and colorama). However, the package is abandoned—last commit was 2021-01-06 and no releases since 2020-10-27—so expect no maintenance, bug fixes, or compatibility updates for modern Python versions.
License in practice
Licensed under MIT (permissive), so you can use, modify, and distribute freely with minimal restrictions.
Quickstart
from tqdm_multiprocess import TqdmMultiProcessPool
import tqdm
pool = TqdmMultiProcessPool()
tasks = [(your_function, (arg1, arg2)) for arg1, arg2 in work_items]
with tqdm.tqdm(total=total_work) as global_progress:
results = pool.map(4, global_progress, tasks, error_callback, done_callback)
Worker functions must accept tqdm_func and global_tqdm as final arguments; tqdm(iterator) is not supported—you must initialize tqdm with total= and call update() manually.
Verify before relying
- Whether the package works reliably with Python versions released after 2021 (last commit date).
- Performance characteristics when handling hundreds or thousands of tasks.
- Compatibility with recent versions of tqdm and colorama.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — tqdm, colorama |
| Maintenance | abandoned — 2,117 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 694,822/month — #5,312 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tqdm_multiprocess-0.0.11-py3-none-any.whl
Tags
More Distributed Computing packages
gRPC Python is an HTTP/2-based RPC framework…
permissive · top 100 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
cloudpickleCloudpickle extends Python's standard pickle…
permissive · top 1,000 on PyPI
smart-openProvides a unified, open()-compatible Python…
permissive · top 1,000 on PyPI
portalockerPortalocker provides cross-platform file…
permissive · top 1,000 on PyPI
rayRay is a distributed computing framework that…
permissive · top 1,000 on PyPI
multiprocessing-loggingProvides a logging handler that tunnels log…
copyleft · top 15,000 on PyPI
p-tqdmp_tqdm wraps pathos and tqdm to apply a…
permissive · top 15,000 on PyPI
parallelbarParallelbar wraps Python's multiprocessing Pool…
permissive · top 15,000 on PyPI
tqdm-joblibAdds a progress bar to joblib.Parallel…
unclear · top 15,000 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pqdmpqdm wraps tqdm and concurrent.futures to…
permissive · top 15,000 on PyPI
tdqmtdqm is an alias package that redirects to…
copyleft · top 15,000 on PyPI
tqdm-loggableConverts tqdm progress bars to logging-friendly…
permissive · top 5,000 on PyPI
pyfunceble-process-managerProvides a multiprocess task queue framework…
permissive · top 15,000 on PyPI
stqdmstqdm wraps tqdm progress bars for Streamlit…
permissive · top 15,000 on PyPI