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.2.0 — alpha. API may shift.
Install
pip install everbar # core only; uses text fallback if nothing else is installed
pip install "everbar[tqdm]" # terminal + Jupyter via tqdm
pip install "everbar[notebook]" # tqdm + ipywidgets for notebook front-ends
pip install "everbar[all]" # everything (tqdm, rich, ipywidgets, marimo)
Use
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)
Other options:
Progress(items, unit="files") # label what's being counted
Progress(items, disable=True) # render nothing (e.g. behind a quiet flag)
Live metrics with set_postfix
Show a live key/value suffix next to the bar — useful in training loops:
with Progress(total=epochs, desc="Training") as bar:
for epoch in range(epochs):
loss, acc = train_one_epoch()
bar.set_postfix(loss=loss, acc=acc)
bar.update(1)
Calling set_postfix again replaces the previous suffix. Floats are
formatted compactly (e.g. loss=0.424, acc=0.91).
Signal failure with fail()
Mark the bar as failing without stopping it — useful when one task in a batch errors but the overall job continues:
with Progress(total=len(jobs), desc="Batch") as bar:
for job in jobs:
if not run(job):
bar.fail()
bar.update(1)
Rendering is backend-specific: red bar in tqdm, FAIL marker in Rich,
[failing] log lines in non-TTY mode, a red badge in Marimo. The state
is sticky.
Overrides
Progress(items, backend="terminal") # per-call
EVERBAR_BACKEND=terminal python script.py # env var
import everbar
everbar.set_default_backend("terminal") # module-wide
Precedence: the backend= argument wins, then EVERBAR_BACKEND, then
set_default_backend, then auto-detection.
Unknown backend names raise ValueError (EVERBAR_BACKEND warns and is
ignored instead). If you request a backend in code (backend= or
set_default_backend) and its dependency isn't installed, you get an
ImportError; if EVERBAR_BACKEND names it, everbar warns and uses the
text fallback instead — deploy-time configuration never crashes a
script. Auto-detection falls back silently.
Extra keyword arguments to Progress are forwarded to the selected
backend, so they are environment-specific by nature (tqdm's colour,
Rich's console, the fallback's min_interval). Stick to the named
parameters in code that must run everywhere.
How it picks a backend
everbar.detect_environment() returns one of: marimo, colab, kaggle, vscode_notebook, jupyter, 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.
Release files for everbar 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| everbar-0.3.0.tar.gz | 34.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| everbar-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.7 kB
Release files / everbar-0.3.0.tar.gz
| Download URL | everbar-0.3.0.tar.gz |
|---|---|
| Size | 34.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8ab5948fe29bb738f067720f61b1067dcc9c74dd0c089295a2d7f9d64ecad6e5
|
|
BLAKE2b-256 checksum How to use checksums |
458b09a978885b184a1e8ba60da2e0f90c4f9d9fd6302ede0eff3bb15ace1f9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / everbar-0.3.0-py3-none-any.whl
| Download URL | everbar-0.3.0-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6a5ecbc335b508b1e1612ed8477f3837cfdb9bd24fb1758248d8f7c6dace70d
|
|
BLAKE2b-256 checksum How to use checksums |
b0891cb8c951cafc01e4d51c1246ffe28b75ac30811b2006eb2639c63454fc6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|