New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

tqdm-publisher

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tqdm-publisher

Extends the base tqdm progress bar with a subscribe method that can expose updates to external (potentially non-Python) processes.

  • 0.1.1
  • PyPI
  • Socket score

Maintainers
2

tqdm-publisher

PyPI version codecov License

tqdm_publisher is a small Python package that allows you to subscribe to updates from tqdm progress bars with arbitrary callback functions.

This is useful if you want to use tqdm to track the progress of a long-running task, but you also want to do something else with the progress information (e.g., forward it to a user interface, log it to a file, etc.).

Installation

pip install tqdm_publisher

Getting Started

Basic Usage

To monitor the progress of an existing tqdm progress bar, simply swap the tqdmand TQDMPublisher constructors. Then, declare a callback function to handle progress updates, and subscribe it to the TQDMPublisher updates using the subscribe method before iteration begins.

Original Code
import random
import time

from tqdm import tqdm

N_TASKS = 100

# Create a list of tasks
durations = [ random.uniform(0, 1.0) for _ in range(N_TASKS) ]

# Create a progress bar
progress_bar = tqdm(durations)

# Iterate over the progress bar
for duration in progress_bar:
    time.sleep(duration) # Execute the task
Modified Code
import random
import time

from tqdm_publisher import TQDMPublisher

N_TASKS = 100
durations = [ random.uniform(0, 1.0) for _ in range(N_TASKS) ]
progress_bar = TQDMPublisher(durations)

# Declare a callback function to handle progress updates
on_update = lambda info: print('Progress Update', info)

# Subscribe the callback to the TQDMPublisher
progress_bar.subscribe(on_update)

for duration in progress_bar:
    time.sleep(duration)

Demo

A complete demo of tqdm_publisher can be found in the demo directory, which shows how to forward progress updates from the same TQDMPublisher instance to multiple clients.

To run the demo, first install the dependencies:

pip install tqdm_publisher[demo]

Then, run the base CLI command to start the demo server and client:

tqdm_publisher demo

Note: Alternatively, you can run each part of the demo separately by running tqdm_publisher demo --server and tqdm_publisher demo --client in separate terminals.

Finally, you can click the Create Progress Bar button to create a new TQDMPublisher instance, which will begin updating based on the TQDMPublisher instance in the Python script.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc