跳转到主要内容

扩展基础tqdm进度条,并添加了一个订阅方法,可以将更新暴露给外部(可能不是Python)进程。

项目描述

tqdm-publisher

PyPI version codecov License

tqdm_publisher 是一个小型的Python包,允许您通过任意回调函数订阅 tqdm 进度条的更新。

如果您想使用 tqdm 来跟踪长时间运行的任务的进度,但同时又想对进度信息做其他处理(例如,将其转发到用户界面,记录到文件等),这将非常有用。

安装

pip install tqdm_publisher

入门

基本用法

要监控现有 tqdm 进度条的进度,只需交换 tqdmTQDMPublisher 构造函数。然后,声明一个处理进度更新的回调函数,并使用 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 --servertqdm_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 查看哈希值)

上传时间 Python 3

由以下机构支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面