扩展基础tqdm进度条,并添加了一个订阅方法,可以将更新暴露给外部(可能不是Python)进程。
项目描述
tqdm-publisher
tqdm_publisher
是一个小型的Python包,允许您通过任意回调函数订阅 tqdm
进度条的更新。
如果您想使用 tqdm
来跟踪长时间运行的任务的进度,但同时又想对进度信息做其他处理(例如,将其转发到用户界面,记录到文件等),这将非常有用。
安装
pip install tqdm_publisher
入门
基本用法
要监控现有 tqdm
进度条的进度,只需交换 tqdm
和 TQDMPublisher
构造函数。然后,声明一个处理进度更新的回调函数,并使用 subscribe
方法将其订阅到 TQDMPublisher
更新中,在迭代开始之前进行订阅。
原始代码
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
修改后的代码
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)
演示
完整的 tqdm_publisher
演示可以在 demo
目录中找到,展示了如何将来自同一 TQDMPublisher
实例的进度更新转发到多个客户端。
要运行演示,首先安装依赖项
pip install tqdm_publisher[demo]
然后,运行基本 CLI 命令以启动演示服务器和客户端
tqdm_publisher demo
注意:您还可以通过在单独的终端中运行
tqdm_publisher demo --server
和tqdm_publisher demo --client
来分别运行演示的各个部分。
最后,您可以点击创建进度条按钮来创建一个新的 TQDMPublisher
实例,该实例将根据 Python 脚本中的 TQDMPublisher
实例开始更新。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码发行版
tqdm_publisher-0.1.1.tar.gz (22.0 kB 查看哈希值)
构建发行版
tqdm_publisher-0.1.1-py3-none-any.whl (23.1 kB 查看哈希值)
关闭
tqdm_publisher-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9a966153e222b26d5a312ad1c0b7cd2a61f585e7e7d7cc6e68104ef46f2558e3 |
|
MD5 | bca1377cd6f6732fbd36ff7ebac5e6f1 |
|
BLAKE2b-256 | 1ca5dedf07e40a1db3372db087bc166521e7f8408bd8a42f36e01a42fb14cffb |
关闭
tqdm_publisher-0.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 85a9b7a4d04e704f1564f4256feec33677f0e96f364f75f77377eba98c3ac283 |
|
MD5 | afc8e494a4142d4ec76069690ed90fd0 |
|
BLAKE2b-256 | 54efb5ffc080f21ac4c352043f0c4cb02722631aab1fabd2179fb8d29d64902f |