Metadata-Version: 2.4
Name: mqdm
Version: 2.0.0
Summary: cross-process progress bars
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Environment :: Console
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: rich>=13
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: fire; extra == "test"
Provides-Extra: dev
Requires-Dist: fire; extra == "dev"
Requires-Dist: ipython; extra == "dev"
Requires-Dist: pyinstrument; extra == "dev"
Requires-Dist: pdbr; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Requires-Dist: mkdocstrings[python]; extra == "docs"
Requires-Dist: pymdown-extensions; extra == "docs"
Requires-Dist: ruff; extra == "docs"

# mqdm

Pretty, worker-aware progress bars for Python.

`mqdm` keeps a `tqdm`-like feel, but is designed to stay pleasant when you add:

- nested progress bars
- threads or processes
- progress-safe printing
- logging and warnings above the bars

## Install

```bash
pip install mqdm
```

## Quick look

```python
import time
import mqdm as M

for folder in M.mqdm(["cats", "clouds", "notes"], desc="indexing"):
    for _ in M.mqdm(range(5), desc=lambda _, i: f"{folder} · file {i + 1}"):
        time.sleep(0.05)
```

## Docs

The main documentation now lives in the MkDocs site under [docs](docs/index.md).

Local preview:

```bash
pip install -e ".[docs]"
mkdocs serve
```

## Tests

```bash
pip install -e ".[test]"
pytest
```
Test across multiple Python versions:
```bash
for py in 3.10 3.11 3.12 3.13 3.14 3.15; do
  echo "=== Python $py ==="
  uv run --python $py pytest tests/ -q 2>&1 || break
done
```
