Metadata-Version: 2.4
Name: everbar
Version: 0.1.0
Summary: A progress bar that works everywhere — terminal, Jupyter, VS Code, Colab, Marimo.
Project-URL: Homepage, https://github.com/mluttikh/everbar
Project-URL: Issues, https://github.com/mluttikh/everbar/issues
License-Expression: MIT
Keywords: jupyter,marimo,notebook,progress,progressbar,tqdm
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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
Classifier: Topic :: Terminals
Requires-Python: >=3.11
Provides-Extra: all
Requires-Dist: ipywidgets>=8.0; extra == 'all'
Requires-Dist: marimo>=0.10; extra == 'all'
Requires-Dist: rich>=13.0; extra == 'all'
Requires-Dist: tqdm>=4.65; extra == 'all'
Provides-Extra: marimo
Requires-Dist: marimo>=0.10; extra == 'marimo'
Provides-Extra: notebook
Requires-Dist: ipywidgets>=8.0; extra == 'notebook'
Requires-Dist: tqdm>=4.65; extra == 'notebook'
Provides-Extra: rich
Requires-Dist: rich>=13.0; extra == 'rich'
Provides-Extra: tqdm
Requires-Dist: tqdm>=4.65; extra == 'tqdm'
Description-Content-Type: text/markdown

# everbar

A progress bar that works **everywhere** — terminal, Jupyter, JupyterLab, VS Code notebooks, Google Colab, Marimo, Pyodide, and CI logs. One API, the right backend per environment.

> Status: 0.1.0 — alpha. API may shift.

## Install

```bash
pip install everbar             # core only; uses text fallback if nothing else is installed
pip install "everbar[tqdm]"     # terminal + Jupyter via tqdm
pip install "everbar[all]"      # everything (tqdm, rich, ipywidgets, marimo)
```

## Use

```python
from everbar import Progress

for x in Progress(items, desc="Loading"):
    work(x)

with Progress(total=100, desc="Steps") as bar:
    for _ in range(100):
        do_step()
        bar.update(1)
```

## Overrides

```python
Progress(items, backend="terminal")        # per-call
```

```bash
EVERBAR_BACKEND=terminal python script.py  # env var
```

```python
import everbar
everbar.set_default_backend("terminal")    # module-wide
```

## How it picks a backend

`everbar.detect_environment()` returns one of: `marimo`, `colab`, `kaggle`, `vscode_notebook`, `jupyter`, `jupyter_qt`, `spyder`, `databricks`, `pyodide`, `ipython_terminal`, `terminal`, `non_tty`. Each maps to a backend, with graceful fallback to a log-line text mode when nothing better is available.
