分享

alive progress-具有实时吞吐量和非常酷的动画新型的进度条python库

 CNStudent 2020-12-19

alive progress是一种具有实时吞吐量和非常酷的动画新型的进度条python库。

您是否曾经在远程ssh会话中发现自己,做了一些冗长的操作,然后不时地感到需要进入[输入]以确保您不会失去连接?有没有想过您的处理在哪里,何时完成?是否曾经需要暂停进度条一段时间,返回python REPL进行手动检查或修复项目,然后像从未发生过的那样恢复过程?

我制作了这个很酷的进度条,考虑了所有这些问题,活动的进度条!:)

alive progress的特点

我喜欢将其视为python的一种新型进度条,因为它具有以下优点:

  • 一个很酷的实时微调器,它清楚地表明您的漫长过程没有挂起,并且ssh连接正常。

  • 当旋转器根据实际处理速度运行得更快或更慢时,对当前速度/吞吐量的视觉反馈;

  • 一个有效的多螺纹杆,其在所述实际速度的一小部分来更新自身(每秒相当于百万迭代以每秒刷新速率大约60帧),以保持CPU使用率较低,避免终端滥发; (📌 新功能:您现在可以对此进行校准!)

  • 预期到达时间(ETA),采用智能指数平滑算法,以最友好的方式显示剩余的处理时间;

  • 一个print()钩子和(📌新增)日志记录支持,该功能允许在动画栏的中间轻松地打印语句和消息,自动清理屏幕,甚至在出现当前位置时丰富屏幕内容;

  • 处理完成后,将打印一张不错的收据,其中包含该运行的统计信息,包括经过时间和观察到的吞吐量;

  • 它跟踪所需的计数(不一定是实际的迭代)以检测上溢和下溢,因此,如果发送的数量少于或大于预期,则外观会有所不同;

  • 它会自动检测是否有分配的tty,如果没有(如管道重定向),只会打印最终收据,因此您可以安全地将其包含在任何代码中,并确保您的日志文件不会成千上万进度线;

  • 您可以暂停它!我认为这是进度条前所未有的功能!能够在正在运行的进度条上下文中手动操作某些项目,并像以往任何时候都从未停止过的那样恢复进度条,真是令人难以置信。

  • 它是可定制的,具有越来越多的不同条形和旋转器样式的杂货店,以及多家工厂,可轻松产生您的!

📌 1.6系列的新功能!

  • 软包装支持-或实际上缺乏支持,如果它不再适合该行,它将不会拼命地滚动您的终端!

  • 隐藏的光标支持-更美观,更专业的外观!

  • python日志记录支持-从日志记录中充分清除和丰富消息,而无需任何配置或修改!

  • ETA的指数平滑-最需要时更平滑!

  • 适当的栏标题-左对齐,始终可见的标题,因此您知道该处理会带来什么结果!

  • 延长了经过时间和ETA表示-尽可能最小的再现,因此您可以最大化动画!

  • 新的bar.text()专用方法-现在您可以更改情境消息,而不必继续前进!

  • 性能优化-更少的开销,您的处理甚至不会注意到它!

使用

您只需使用pip安装:pip install alive-progress

清醒一下

打开这样的上下文管理器:

from alive_progress import alive_bar

items = range(1000)                  # retrieve your set of items

with alive_bar(len(items)) as bar:   # declare your expected total

    for item in items:               # iterate as usual

        # process each item

        bar()                        # call after consuming one item

然后它就可以开始工作了! 👏

通常,只需检索项目,进入alive_bar()上下文管理器,然后正常进行迭代/处理,bar()就每个项目调用一次即可。

款式

想知道它内置了什么样式?是showtime啊!;)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多