Skip to content

Commit 9be5881

Browse files
authored
Merge pull request #66 from phipsgabler/phg/varinfo_show
Add shorter non-display printing of VarInfo
2 parents 3034626 + 6903e3e commit 9be5881

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

src/varinfo.jl

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ function haskey(vi::TypedVarInfo, vn::VarName)
924924
return getsym(vn) in fieldnames(Tmeta) && haskey(getmetadata(vi, vn).idcs, vn)
925925
end
926926

927-
function show(io::IO, vi::UntypedVarInfo)
927+
function Base.show(io::IO, ::MIME"text/plain", vi::UntypedVarInfo)
928928
vi_str = """
929929
/=======================================================================
930930
| VarInfo
@@ -942,7 +942,33 @@ function show(io::IO, vi::UntypedVarInfo)
942942
print(io, vi_str)
943943
end
944944

945-
# Add a new entry to VarInfo
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), length(groups) == 1 ? " variable " : " 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+
964+
function Base.show(io::IO, vi::UntypedVarInfo)
965+
print(io, "VarInfo (")
966+
_show_varnames(io, vi)
967+
print(io, "; logp: ", round(getlogp(vi), digits=3))
968+
print(io, ")")
969+
end
970+
971+
946972
"""
947973
push!(vi::VarInfo, vn::VarName, r, dist::Distribution)
948974

0 commit comments

Comments
 (0)