如何使tqdm与詹金斯玩得很好?

Ole*_*siy 11 jenkins tqdm

喜欢tqdm进度条,但是当我在jenkins上使用它时,我会在stdout(特别是无所不在[A)中得到一堆奇怪的文物和太多的臃肿.在tqdm中是否有秘密模式使其与jenkins很好地协同工作?用于无缝检测jenkins等非交互式shell的奖励积分.这是我的典型输出:

label: 0it [00:00, ?it/s][A
[A
 16%|#6        | 5378/33302 [36:28<2:30:49,  3.09it/s]
[A
 16%|#6        | 5379/33302 [36:29<2:36:46,  2.97it/s]
[A
...
Run Code Online (Sandbox Code Playgroud)

cas*_*dcl 4

我会选择类似的东西:

from tqdm import tqdm
import os

# try this
for i in tqdm(..., disable=None):
    ...

# alternative if the above doesn't work
for i in tqdm(..., disable=os.environ.get("JENKINS_HOME")):
    ...

# or even...
for i in tqdm(..., disable=os.environ.get("JENKINS_HOME") is not None):
    ...
Run Code Online (Sandbox Code Playgroud)

请注意,disable=None应该自动检查诸如sys.stdout.isatty().

CR不幸的是,对于 Jenkins 不支持( \r) 的基本要求,我们无能为力tqdm

来自https://tqdm.github.io/

tqdm不需要任何依赖项(甚至不需要curses!),只需要 Python 和支持回车\r和换行\n控制字符的环境。