使用ipython本机构建的交互式progressbar
ipypb的Python项目详细描述
交互式进度条
使用本机ipython功能的python进度条。小工具免费。甚至在朱庇特实验室工作。
创建此包的原因是其他进度条使用自定义条对象和/或小部件工具,忽略内置的IPython
功能。这使得它们在像jupyterlab这样的“干净”环境中不可用。相反,ipypb
甚至可以在非常受限的环境中运行。
ipypb
的另一个有用特性是,即使在关闭笔记本并终止其ipython内核之后,进度条信息也是可用的。再次启动此笔记本后,您将看到与关闭前相同的进度条信息,而不是像Failed to display Jupyter Widget of type HBox
这样与widjet相关的erorr,如下所示:
也可以看看这个NBViewer example。
注释
目前处于测试阶段。
简单用法示例:
fromtimeimportsleepfromipypbimporttrackforiintrack(range(10)):sleep(0.1)
还有其他一些便利设施。例如,可以使用ipypb
作为python的range-like函数:
fromipypbimportirangeforiinirange(1,10,2):# same as range(1, 10, 2) but with progressbar# <do stuff>...
使用factory方法ipb
也可能有帮助,该方法处理不同的使用场景,并根据输入参数返回track
或irange
实例。另一个使用示例是,当您已经有一堆使用^{ipypb
:
fromipypbimportipbtqdm_notebook=ipb# or if you run it in interactive shelltqdm=ipb
它将自动处理关键字参数,以确保与tqdm
的api兼容。注意,ipb
为笔记本和终端环境提供了一个通用接口。
异步流
也可以使用ipypb
来跟踪异步或并行执行的任务。主要用例是当任务池中已执行任务的顺序与显示进度的所需顺序不对应时。在这种情况下,可以通过提交进度层次结构的描述来指示ipypb
保留所需的顺序。下面是由三个层次组成的简单继承权的示例:i <-- j <-- k
。每个父级的进度取决于其子级的完全执行。请注意,级别k:1
和k:2
如何移动到它们所属的组j:0
中,即使它们最初出现在j:1
组的末尾:
note:此功能当前处于临时状态,这意味着其api在将来的版本中会发生主要更改。要进行测试,请执行
fromipypbimportchain
安装
pip install --upgrade ipypb
要求
python 3.6+和ipython v.5.6+不包括v.6.1和v.6.2
限制
- 循环结束时清除progressbar的功能尚不受支持。