Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/progress.jl
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,8 @@ Base.show(io::IO, ::MIME"text/plain", pbar::ProgressBar) =
N::Union{Int, Nothing}=nothing,
start::Bool=true,
transient::Bool=false,
id=nothing
id=nothing,
columns::Vector{DataType} = pbar.columns
)::ProgressJob
Add a new `ProgressJob` to a running `ProgressBar`
Expand All @@ -352,14 +353,15 @@ function addjob!(
transient::Bool = false,
id = nothing,
columns_kwargs::Dict = Dict(),
columns::Vector{DataType} = pbar.columns,
)::ProgressJob
pbar.running && print("\n")

# create Job
pbar.paused = true
id = isnothing(id) ? length(pbar.jobs) + 1 : id
kwargs = merge(pbar.columns_kwargs, columns_kwargs)
job = ProgressJob(id, N, description, pbar.columns, pbar.width, kwargs, transient)
job = ProgressJob(id, N, description, columns, pbar.width, kwargs, transient)

# start job
start && start!(job)
Expand Down
33 changes: 32 additions & 1 deletion test/15_test_progress.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ using Term.Progress
import Term.Progress: AbstractColumn, getjob, get_columns, jobcolor
import Term: install_term_logger, uninstall_term_logger, str_trunc
import Term.Progress:
CompletedColumn, SeparatorColumn, ProgressColumn, DescriptionColumn, TextColumn
CompletedColumn,
SeparatorColumn,
ProgressColumn,
DescriptionColumn,
TextColumn,
SpinnerColumn

using ProgressLogging
import ProgressLogging.Logging.global_logger
Expand Down Expand Up @@ -136,6 +141,32 @@ end
IS_WIN || @compare_to_string render(pbar) "pbar_customization"
end

@testset "\e[34mProgress per-job columns" begin
@test_nowarn redirect_stdout(Base.DevNull()) do
p = ProgressBar(; columns = :default)
c0 = [DescriptionColumn, CompletedColumn, ProgressColumn, SpinnerColumn]
c1 = [DescriptionColumn, CompletedColumn, ProgressColumn, SpinnerColumn]
c2 = [CompletedColumn, ProgressColumn, SeparatorColumn, SpinnerColumn]
j0 = addjob!(p; columns = c0, N = 100)
j1 = addjob!(p; columns = c1, N = 100)
j2 = addjob!(p; columns = c2, N = 100)
@test all(typeof.(j0.columns) .== c0)
@test all(typeof.(j1.columns) .== c1)
@test all(typeof.(j2.columns) .== c2)
@test !all(typeof.(j2.columns) .== c0)
@test !all(typeof.(j0.columns) .== c2)

with(p) do
for _ in 1:100
update!(j0)
update!(j1)
update!(j2)
sleep(0.01)
end
end
end
end

@testset "\e[34mProgress foreachprogress" begin
@test_nowarn redirect_stdout(Base.DevNull()) do
Term.Progress.foreachprogress(1:10) do i
Expand Down
Loading