Metadata-Version: 2.4
Name: asyncprogress
Version: 0.3.7
Summary: Async-aware progress bars for Python's asyncio ecosystem
License: MIT
License-File: LICENSE
Keywords: asyncio,progress,progress-bar,async,tqdm
Author: AgentSoft
Author-email: agentsoft@example.com
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
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: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: color
Requires-Dist: colorama (>=0.4.4) ; extra == "color"
Description-Content-Type: text/markdown

# asyncprogress

Async-aware progress bars for Python's asyncio ecosystem. Zero mandatory dependencies.

[![PyPI](https://img.shields.io/pypi/v/asyncprogress)](https://pypi.org/project/asyncprogress/)
[![Python](https://img.shields.io/pypi/pyversions/asyncprogress)](https://pypi.org/project/asyncprogress/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Why asyncprogress?

Existing progress bar libraries (`tqdm`, `rich`, `alive-progress`) were designed for
synchronous code. `asyncprogress` is built from the ground up for `asyncio`:

- **Native `async for` support** — wrap any sync or async iterable with one line
- **Accurate ETA** — EWMA-based estimation handles bursty async I/O patterns
- **Concurrent task tracking** — `gather()` and `aprogress_as_completed()` for task pools
- **Spinner mode** — automatic fallback for unknown-length streams
- **Multiple concurrent bars** — `MultiProgressBar` for parallel pipelines
- **Zero mandatory dependencies** — pure Python stdlib (`asyncio`, `sys`, `time`)

## Installation


