Skip to main content

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)

Source distribution for everbar 0.3.0
File Size Uploaded
everbar-0.3.0.tar.gz 34.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for everbar 0.3.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page