Skip to content

Commit 8ead585

Browse files
committed
fix: edge case when no time
1 parent 2d2836f commit 8ead585

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/variable.jl

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@ Optional:
88
* `times(v)`: the timestamps of the variable
99
* `units(v)`: the units of the variable
1010
* `meta(v)`: the metadata of the variable
11+
* `name(v)`: the name of the variable
1112
"""
1213
abstract type AbstractDataVariable{T,N} <: AbstractArray{T,N} end
1314

1415
# https://docs.julialang.org/en/v1/manual/interfaces/#man-interface-array
1516
Base.parent(var::AbstractDataVariable) = var.data
16-
Base.size(var::AbstractDataVariable) = size(parent(var))
1717
Base.iterate(A::AbstractDataVariable, args...) = iterate(parent(A), args...)
18+
for f in (:size, :Array)
19+
@eval Base.$f(var::AbstractDataVariable) = $f(parent(var))
20+
end
21+
1822
for f in (:getindex,)
1923
@eval Base.$f(var::AbstractDataVariable, I::Vararg{Int}) = $f(parent(var), I...)
2024
end
@@ -23,14 +27,17 @@ times(v) = v.times
2327
tmin(v) = minimum(times(v))
2428
tmax(v) = maximum(times(v))
2529

30+
_timerange_str(times) = "Time Range: $(minimum(times)) to $(maximum(times))"
31+
2632
function Base.show(io::IO, var::T) where {T<:AbstractDataVariable}
2733
ismissing(var) && return
2834
print_name(io, var)
2935
print(io, " [")
30-
print(io, "Time Range: ", tmin(var), " to ", tmax(var))
36+
time = times(var)
37+
isnothing(time) || print(io, _timerange_str(time), ",")
3138
u = units(var)
32-
isnothing(u) || print(io, ", Units: ", u)
33-
print(io, ", Size: ", size(var))
39+
isnothing(u) || print(io, " Units: ", u, ",")
40+
print(io, " Size: ", size(var))
3441
print(io, "]")
3542
end
3643

@@ -40,7 +47,8 @@ function Base.show(io::IO, m::MIME"text/plain", var::T) where {T<:AbstractDataVa
4047
print(io, "$T: ")
4148
print_name(io, var)
4249
println(io)
43-
println(io, " Time Range: ", tmin(var), " to ", tmax(var))
50+
time = times(var)
51+
isnothing(time) || println(io, " ", _timerange_str(time))
4452
u = units(var)
4553
isnothing(u) || println(io, " Units: ", u)
4654
println(io, " Size: ", size(var))

0 commit comments

Comments
 (0)