timholy / ProgressMeter.jl

Progress meter for long-running computations
MIT License
694 stars 91 forks source link

Progressbar with offset 0 adds a line break when finished #215

Closed MarcMush closed 3 years ago

MarcMush commented 3 years ago

when the progressbar with offset 0 finishes, a line break is added, which will move the next progressbars I guess in most cases, it will be a global progressbar and finish last but it can be (slightly) annoying

julia> begin
       p1 = Progress(10, desc="prog 1 ", offset=0)
       p2 = Progress(10, desc="prog 2 ", offset=1)
       for i in 1:10
           sleep(0.1)
           next!(p1)
           next!(p2)
       end
       println()
       end
prog 1 100%|███████████████████| Time: 0:00:01
prog 2  90%|██████████████████ |  ETA: 0:00:00
prog 2 100%|███████████████████| Time: 0:00:01
julia> begin
       p1 = Progress(10, desc="prog 1 ", offset=0)
       p2 = Progress(10, desc="prog 2 ", offset=1)
       for i in 1:10
           sleep(0.1)
           next!(p2)
           next!(p1)
       end
       println()
       end
prog 1 100%|███████████████████| Time: 0:00:01
prog 2 100%|███████████████████| Time: 0:00:01
MarcMush commented 3 years ago

I found how to avoid this behavior (I believe this isn't documented)

julia> begin
       p1 = Progress(10, desc="prog 1 ", offset=0)
       p2 = Progress(10, desc="prog 2 ", offset=1)
       for i in 1:10
           sleep(0.1)
           next!(p1, keep=false) # <- here
           next!(p2)
       end
       println()
       end
prog 1 100%|███████████████████| Time: 0:00:01
prog 2 100%|███████████████████| Time: 0:00:01