diff --git a/src/ProgressMeter.jl b/src/ProgressMeter.jl index 15a9e4a..1238510 100644 --- a/src/ProgressMeter.jl +++ b/src/ProgressMeter.jl @@ -2,6 +2,7 @@ module ProgressMeter using Printf: @sprintf using Distributed +import Base.show export Progress, ProgressThresh, ProgressUnknown, BarGlyphs, next!, update!, cancel, finish!, @showprogress, progress_map, progress_pmap, ijulia_behavior @@ -118,6 +119,23 @@ mutable struct Progress <: AbstractProgress end end +""" +Pretty print short description of Progress +""" +function Base.show(io::IO, p::Progress) + print(io, "Progress(n=$(p.n)") + if p.start != 0 + print(io, ",start=$(p.start)") + end + if !isnothing(p.barlen) + print(io, ",barlen=$(p.barlen)") + end + if p.barglyphs != defaultglyphs + print(io, ",barglyphs=$(p.barglyphs)") + end + print(io, ")") +end + """ `prog = ProgressThresh(thresh; dt=0.1, desc="Progress: ", color=:green, output=stderr)` creates a progress meter for a task diff --git a/test/test_showvalues.jl b/test/test_showvalues.jl index a91416d..70e1ad5 100644 --- a/test/test_showvalues.jl +++ b/test/test_showvalues.jl @@ -111,4 +111,17 @@ for i in 1:50 sleep(0.1) end -end # if \ No newline at end of file + +end # if + +println("Testing Base.show for Progress") +prog = Progress(50) +io = IOBuffer() +Base.show(io, prog) +progShowStr = String(take!(io)) +@test progShowStr == "Progress(n=50)" +prog = Progress(50, start=10, barlen=100) +io = IOBuffer() +Base.show(io, prog) +progShowStr = String(take!(io)) +@test progShowStr == "Progress(n=50,start=10,barlen=100)"