--- id: pqdm version: "0.2.0" license: MIT license license_treatment: permissive maintenance: dormant --- # pqdm — PQDM is a TQDM and concurrent futures wrapper to allow enjoyable paralellization of progress bars. License: permissive · Maintenance: dormant · Downloads: 390.4K/mo ## What it is and what it does pqdm is a thin wrapper around tqdm and Python's concurrent.futures that lets you parallelize iteration over an iterable while displaying a live progress bar. Instead of writing separate code for progress tracking and parallelism, you pass your iterable and a function to pqdm, specify the number of jobs (processes or threads), and get back results with a progress bar that updates as tasks complete. It automatically detects Jupyter environments and uses tqdm.notebook when appropriate, and accepts custom tqdm classes for specialized use cases. The package depends on tqdm for progress display, bounded-pool-executor for optional bounded thread/process pools, and typing-extensions for type hints. It supports both process-based parallelism (via pqdm.processes) and thread-based parallelism (via pqdm.threads), making it suitable for CPU-bound and I/O-bound workloads respectively. The API is deliberately simple: you import pqdm, call it with your iterable and function, and let it handle the concurrency and progress reporting. Use it for: - Parallelize batch processing of data (e.g., image resizing, file conversion) with live progress feedback. - Speed up I/O-bound operations like API calls or database queries across multiple threads while monitoring completion. - Distribute CPU-intensive computations across processes with a visual progress indicator for long-running tasks. - Quickly add parallelism to existing sequential code that already uses tqdm for progress tracking. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. pqdm wraps tqdm and concurrent.futures to parallelize iteration over iterables with a live progress bar, supporting both process and thread-based parallelism. Yes, if you need straightforward parallel iteration with progress bars and can accept dormant maintenance. The low install friction, permissive MIT license, and stable API make it a practical choice for one-off scripts or stable production use. However, if you require active maintenance, ongoing feature development, or support for Python versions beyond 3.9, consider whether a more actively maintained alternative fits your timeline. ## Install pip install pqdm uv add pqdm poetry add pqdm ## Installing pqdm Before you install: Low install friction with three lightweight runtime dependencies. Maintenance is dormant—last release was 2022-02-14, though the repository remains active with a recent commit on 2024-12-07. Suitable for stable use cases but expect no new features or rapid bug fixes. License in practice: MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects. Quickstart: pip install pqdm from pqdm.processes import pqdm args = [1, 2, 3, 4, 5] def square(a): return a * a result = pqdm(args, square, n_jobs=2) Requires Python 3.6 or later; process-based parallelism may require special handling on Windows due to multiprocessing constraints. Verify before relying: - Whether automatic tqdm.notebook detection works reliably in all Jupyter/IPython environments. - Performance characteristics and overhead compared to raw concurrent.futures for small workloads. - Compatibility with Python versions beyond 3.9 (classifiers list only up to 3.9). ## Package facts - License: MIT license (permissive) - Python support: supports_current - Install friction: low - Maintenance: dormant - Downloads: 390.4K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags parallel iteration with progress bar, tqdm concurrent futures wrapper, multiprocessing progress tracking, threaded loop with tqdm, parallelized tqdm, bounded pool executor progress, progress-bar, parallelism, concurrent-futures [View on SkillFed](https://skillfed.io/packages/pqdm) · [View on PyPI](https://pypi.org/project/pqdm/)