Skip to content

Commit a0d16fc

Browse files
committed
Allow per-job column specification at addjob!() invocation
1 parent 1c6463d commit a0d16fc

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

src/progress.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,8 @@ Base.show(io::IO, ::MIME"text/plain", pbar::ProgressBar) =
341341
N::Union{Int, Nothing}=nothing,
342342
start::Bool=true,
343343
transient::Bool=false,
344-
id=nothing
344+
id=nothing,
345+
columns::Vector{DataType} = pbar.columns
345346
)::ProgressJob
346347
347348
Add a new `ProgressJob` to a running `ProgressBar`
@@ -356,14 +357,15 @@ function addjob!(
356357
transient::Bool = false,
357358
id = nothing,
358359
columns_kwargs::Dict = Dict(),
360+
columns::Vector{DataType} = pbar.columns,
359361
)::ProgressJob
360362
pbar.running && print("\n")
361363

362364
# create Job
363365
pbar.paused = true
364366
id = isnothing(id) ? length(pbar.jobs) + 1 : id
365367
kwargs = merge(pbar.columns_kwargs, columns_kwargs)
366-
job = ProgressJob(id, N, description, pbar.columns, pbar.width, kwargs, transient)
368+
job = ProgressJob(id, N, description, columns, pbar.width, kwargs, transient)
367369

368370
# start job
369371
start && start!(job)

test/15_test_progress.jl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,32 @@ end
147147
IS_WIN || @compare_to_string render(pbar) "pbar_customization"
148148
end
149149

150+
@testset "\e[34mProgress per-job columns" begin
151+
@test_nowarn redirect_stdout(Base.DevNull()) do
152+
p = ProgressBar(; columns=:default)
153+
c0 = [DescriptionColumn, CompletedColumn, ProgressColumn, SpinnerColumn]
154+
c1 = [DescriptionColumn, CompletedColumn, ProgressColumn, SpinnerColumn]
155+
c2 = [CompletedColumn, ProgressColumn, SeparatorColumn, SpinnerColumn]
156+
j0 = addjob!(p; columns=c0, N=100)
157+
j1 = addjob!(p; columns=c1, N=100)
158+
j2 = addjob!(p; columns=c2, N=100)
159+
@test all(typeof.(j0.columns) .== c0)
160+
@test all(typeof.(j1.columns) .== c1)
161+
@test all(typeof.(j2.columns) .== c2)
162+
@test !all(typeof.(j2.columns) .== c0)
163+
@test !all(typeof.(j0.columns) .== c2)
164+
165+
with(p) do
166+
for _ in 1:100
167+
update!(j0)
168+
update!(j1)
169+
update!(j2)
170+
sleep(0.01)
171+
end
172+
end
173+
end
174+
end
175+
150176
@testset "\e[34mProgress foreachprogress" begin
151177
@test_nowarn redirect_stdout(Base.DevNull()) do
152178
Term.Progress.foreachprogress(1:10) do i

0 commit comments

Comments
 (0)