Skip to content

Commit 683803e

Browse files
committed
Intelligent short printing of varnames
1 parent add79c9 commit 683803e

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

src/varinfo.jl

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -942,10 +942,29 @@ function Base.show(io::IO, ::MIME"text/plain", vi::UntypedVarInfo)
942942
print(io, vi_str)
943943
end
944944

945+
946+
const _MAX_VARS_SHOWN = 4
947+
948+
function _show_varnames(io::IO, vi)
949+
md = vi.metadata
950+
vns = md.vns
951+
952+
groups = Dict{Symbol, Vector{VarName}}()
953+
for vn in vns
954+
group = get!(() -> Vector{VarName}(), groups, getsym(vn))
955+
push!(group, vn)
956+
end
957+
958+
print(io, length(groups), " variables (")
959+
join(io, Iterators.take(keys(groups), _MAX_VARS_SHOWN), ", ")
960+
length(groups) > _MAX_VARS_SHOWN && print(io, ", ...")
961+
print(io, "), dimension ", sum(prod(size(md.vals[md.ranges[md.idcs[vn]]])) for vn in vns))
962+
end
963+
945964
function Base.show(io::IO, vi::UntypedVarInfo)
946965
print(io, "VarInfo (")
947-
print(io, length(vi.metadata.vns), " variables, ")
948-
print(io, "logp = ", round(getlogp(vi), digits=3))
966+
_show_varnames(io, vi)
967+
print(io, "; logp: ", round(getlogp(vi), digits=3))
949968
print(io, ")")
950969
end
951970

0 commit comments

Comments
 (0)