DimensionalData.jl
DimensionalData.jl copied to clipboard
display error for 0-dim array wrapped by Dimension
I came across the following when experimenting with ways to reconstruct interpolated DimArrays over scalar values, so it's possible it doesn't make sense to construct Dimensions in this way anyways, but would be nice to minimize display errors in the code.
julia> using DimensionalData
julia> x = fill(1.0, ())
0-dimensional Array{Float64, 0}:
1.0
julia> X(x)
XError showing value of type X{Array{Float64, 0}}:
ERROR: MethodError: no method matching print_index(::IOContext{Base.TTY}, ::MIME{Symbol("text/plain")}, ::Array{Float64, 0}, ::Int64)
Closest candidates are:
print_index(::Any, ::Any, ::AbstractRange, ::Any)
@ DimensionalData ~/.julia/packages/DimensionalData/VxDQB/src/Lookups/show.jl:82
print_index(::Any, ::Any, ::AbstractVector, ::Any)
@ DimensionalData ~/.julia/packages/DimensionalData/VxDQB/src/Lookups/show.jl:86
print_index(::Any, ::Any, ::AbstractRange)
@ DimensionalData ~/.julia/packages/DimensionalData/VxDQB/src/Lookups/show.jl:82
...
Stacktrace:
[1] print_dimval(io::IOContext{Base.TTY}, mime::MIME{Symbol("text/plain")}, lookup::Array{Float64, 0}, nchars::Int64)
@ DimensionalData.Dimensions ~/.julia/packages/DimensionalData/VxDQB/src/Dimensions/show.jl:121
[2] show(io::IOContext{Base.TTY}, mime::MIME{Symbol("text/plain")}, dim::X{Array{Float64, 0}})
@ DimensionalData.Dimensions ~/.julia/packages/DimensionalData/VxDQB/src/Dimensions/show.jl:64
[3] (::OhMyREPL.var"#7#8"{REPL.REPLDisplay{REPL.LineEditREPL}, MIME{Symbol("text/plain")}, Base.RefValue{Any}})(io::IOContext{Base.TTY})
@ OhMyREPL ~/.julia/packages/OhMyREPL/bkUhZ/src/output_prompt_overwrite.jl:23
[4] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
[5] display
@ ~/.julia/packages/OhMyREPL/bkUhZ/src/output_prompt_overwrite.jl:6 [inlined]
[6] display(d::REPL.REPLDisplay, x::Any)
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:278
[7] display(x::Any)
@ Base.Multimedia ./multimedia.jl:340
[8] #invokelatest#2
@ ./essentials.jl:892 [inlined]
[9] invokelatest
@ ./essentials.jl:889 [inlined]
[10] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{Nothing, AbstractDisplay})
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:315
[11] (::REPL.var"#57#58"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:284
[12] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
[13] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:282
[14] (::REPL.var"#do_respond#80"{Bool, Bool, REPL.var"#93#103"{REPL.LineEditREPL, REPL.REPLHistoryProvider}, REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::Any, ok::Bool)
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:911
[15] (::VSCodeServer.var"#103#106"{REPL.var"#do_respond#80"{Bool, Bool, REPL.var"#93#103"{REPL.LineEditREPL, REPL.REPLHistoryProvider}, REPL.LineEditREPL, REPL.LineEdit.Prompt}})(mi::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.120.2/scripts/packages/VSCodeServer/src/repl.jl:122
[16] #invokelatest#2
@ ./essentials.jl:892 [inlined]
[17] invokelatest
@ ./essentials.jl:889 [inlined]
[18] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2656
[19] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
[20] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
@ REPL /central/groups/esm/software/julia/julia-1.10.3/share/julia/stdlib/v1.10/REPL/src/REPL.jl:386
Right, it just needs to treat that like a scalar