Skip to main content

progressx

Lightweight CLI progress bars, spinners, and task manager for Python.

Features

  • Progress bars
  • Spinners
  • Colored bars and spinners
  • Multiple live tasks
  • Clean terminal rendering
  • No third-party runtime dependencies

Installation

pip install progressx

Quick start

from progressx import ProgressBar
import time

bar = ProgressBar(total=100, label="Upload")

for _ in range(100):
    bar.update()
    print("\r" + bar.render(), end="", flush=True)
    time.sleep(0.02)

print()

Spinner

import time

spinner = Spinner(label="Loading")

for _ in range(20):
    spinner.tick()
    print("\r" + spinner.render(), end="", flush=True)
    time.sleep(0.1)

spinner.succeed("done")
print("\r" + spinner.render())

Progress manager

from progressx import ProgressBar, Spinner, ProgressManager
import time

with ProgressManager() as manager:
    spinner = manager.add(Spinner(label="Preparing"))
    bar = manager.add(ProgressBar(total=50, label="Download"))

    for i in range(50):
        spinner.tick()
        if i == 10:
            spinner.succeed("ready")
        bar.update()
        time.sleep(0.05)

CLI demo

progressx demo

How to run locally

python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip pytest build
python -m pip install -e .

Run tests:

pytest

Run demo:

progressx demo

Example usage

Simple progress bar

import time
from progressx import ProgressBar

bar = ProgressBar(total=20, label="Export")

for _ in range(20):
    bar.update()
    print("\r" + bar.render(), end="", flush=True)
    time.sleep(0.1)

print()

Multiple tasks

import time
from progressx import ProgressBar, Spinner, ProgressManager

with ProgressManager(refresh_rate=0.05) as manager:
    prepare = manager.add(Spinner(label="Preparing"))
    files = manager.add(ProgressBar(total=30, label="Files"))
    rows = manager.add(ProgressBar(total=50, label="Rows", color="blue"))

    for i in range(50):
        prepare.tick()
        if i == 8:
            prepare.succeed("done")

        if i < 30:
            files.update()

        rows.update()
        time.sleep(0.06)

License

MIT

Metadata

Release files for progressx 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for progressx 0.1.1
File Size Uploaded
progressx-0.1.1.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for progressx 0.1.1
File Interpreter ABI Platform
progressx-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.5 kB

Release files / progressx-0.1.1.tar.gz

Download URL progressx-0.1.1.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a1c10316e8c8d8ae500a43ccacead6e62fa9ab4be0d6a50eb8ce4089d6e2478d
BLAKE2b-256 checksum
How to use checksums
e779d290922bfd7f5f317eb4bffc6f89cd16b104edb5ffabd7dd4fa168e61f69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.0

Release files / progressx-0.1.1-py3-none-any.whl

Download URL progressx-0.1.1-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aef65c0f0762f6ad16b7a4078b4b55afb450eaacfd535fddff9b89fcad78f695
BLAKE2b-256 checksum
How to use checksums
12f233dc05e4cb2ec48e7e3521c2cb51338ea12f914ef02e3792218ef0ceed11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

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