From b5cd88b57a0d5ab81f88bb3d7f518b29871ad71f Mon Sep 17 00:00:00 2001 From: Ross Viljoen Date: Sun, 20 Jul 2025 18:38:05 +0200 Subject: [PATCH 1/5] Fix Makie@0.24 compat, and default epoch to UNIX_EPOCH --- ext/UnixTimesMakieExt.jl | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/ext/UnixTimesMakieExt.jl b/ext/UnixTimesMakieExt.jl index d003c36..a2323d7 100644 --- a/ext/UnixTimesMakieExt.jl +++ b/ext/UnixTimesMakieExt.jl @@ -6,16 +6,18 @@ using Observables using Dates struct UnixTimeConversion <: Makie.AbstractDimConversion - custom_epoch::Observable{Union{Nothing, UnixTime}} - function UnixTimeConversion(custom_epoch = nothing) - new(Observable{Union{Nothing, UnixTime}}(custom_epoch; ignore_equal_values=true)) + custom_epoch::Observable{UnixTime} + function UnixTimeConversion(custom_epoch = UNIX_EPOCH) + new(Observable{UnixTime}(custom_epoch; ignore_equal_values=true)) end end function number_to_unixtime(conversion::UnixTimeConversion, i) - Nanosecond(round(Int64, Float64(i))) + something(conversion.custom_epoch[], UNIX_EPOCH) + Nanosecond(round(Int64, Float64(i))) + conversion.custom_epoch[] end +Makie.expand_dimensions(::PointBased, y::AbstractVector{<:UnixTime}) = (keys(y), y) + Makie.needs_tick_update_observable(conversion::UnixTimeConversion) = nothing Makie.should_dim_convert(::Type{UnixTime}) = true @@ -23,19 +25,18 @@ Makie.should_dim_convert(::Type{UnixTime}) = true Makie.create_dim_conversion(::Type{UnixTime}) = UnixTimeConversion() function Makie.convert_dim_value(conversion::UnixTimeConversion, value::UnixTime) - Dates.value(value - something(conversion.custom_epoch[], UNIX_EPOCH)) + Dates.value(value - conversion.custom_epoch[]) end function Makie.convert_dim_value(conversion::UnixTimeConversion, values::AbstractArray{UnixTime}) - Dates.value.(values .- something(conversion.custom_epoch[], UNIX_EPOCH)) + Dates.value.(values .- conversion.custom_epoch[]) +end +function Makie.convert_dim_value(conversion::UnixTimeConversion, attr, values, prev_values) + Dates.value.(values .- conversion.custom_epoch[]) end function Makie.convert_dim_observable(conversion::UnixTimeConversion, values::Observable, deregister) - if conversion.custom_epoch[] === nothing - conversion.custom_epoch[] = last(values[]) - end - result = map(values, conversion.custom_epoch) do vs, ep - Dates.value.(vs .- something(ep, UNIX_EPOCH)) + Dates.value.(vs .- ep) end append!(deregister, result.inputs) result From 48272d8e4935943940662bebeb6251dcff7c441e Mon Sep 17 00:00:00 2001 From: Ross Viljoen Date: Sun, 20 Jul 2025 18:56:12 +0200 Subject: [PATCH 2/5] factor out unixtime_to_number --- ext/UnixTimesMakieExt.jl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ext/UnixTimesMakieExt.jl b/ext/UnixTimesMakieExt.jl index a2323d7..09d4ec7 100644 --- a/ext/UnixTimesMakieExt.jl +++ b/ext/UnixTimesMakieExt.jl @@ -15,6 +15,9 @@ end function number_to_unixtime(conversion::UnixTimeConversion, i) Nanosecond(round(Int64, Float64(i))) + conversion.custom_epoch[] end +function unixtime_to_number(conversion::UnixTimeConversion, value::UnixTime) + Dates.value(value - conversion.custom_epoch[]) +end Makie.expand_dimensions(::PointBased, y::AbstractVector{<:UnixTime}) = (keys(y), y) @@ -25,13 +28,13 @@ Makie.should_dim_convert(::Type{UnixTime}) = true Makie.create_dim_conversion(::Type{UnixTime}) = UnixTimeConversion() function Makie.convert_dim_value(conversion::UnixTimeConversion, value::UnixTime) - Dates.value(value - conversion.custom_epoch[]) + unixtime_to_number(conversion, value) end function Makie.convert_dim_value(conversion::UnixTimeConversion, values::AbstractArray{UnixTime}) - Dates.value.(values .- conversion.custom_epoch[]) + unixtime_to_number.(tuple(conversion), value) end function Makie.convert_dim_value(conversion::UnixTimeConversion, attr, values, prev_values) - Dates.value.(values .- conversion.custom_epoch[]) + unixtime_to_number.(tuple(conversion), value) end function Makie.convert_dim_observable(conversion::UnixTimeConversion, values::Observable, deregister) From b80bf0302982c2b9e2553ed93d9dd0a1cd8df6db Mon Sep 17 00:00:00 2001 From: Ross Viljoen Date: Sun, 20 Jul 2025 18:56:28 +0200 Subject: [PATCH 3/5] update tick on epoch change --- ext/UnixTimesMakieExt.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/UnixTimesMakieExt.jl b/ext/UnixTimesMakieExt.jl index 09d4ec7..8bbf984 100644 --- a/ext/UnixTimesMakieExt.jl +++ b/ext/UnixTimesMakieExt.jl @@ -21,7 +21,7 @@ end Makie.expand_dimensions(::PointBased, y::AbstractVector{<:UnixTime}) = (keys(y), y) -Makie.needs_tick_update_observable(conversion::UnixTimeConversion) = nothing +Makie.needs_tick_update_observable(conversion::UnixTimeConversion) = conversion.custom_epoch Makie.should_dim_convert(::Type{UnixTime}) = true From 002552d8c7f4af2b393cc2ce654345165c148090 Mon Sep 17 00:00:00 2001 From: Ross Viljoen Date: Mon, 21 Jul 2025 07:50:24 +0200 Subject: [PATCH 4/5] fixup --- ext/UnixTimesMakieExt.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/UnixTimesMakieExt.jl b/ext/UnixTimesMakieExt.jl index 8bbf984..aa6d5a4 100644 --- a/ext/UnixTimesMakieExt.jl +++ b/ext/UnixTimesMakieExt.jl @@ -31,10 +31,10 @@ function Makie.convert_dim_value(conversion::UnixTimeConversion, value::UnixTime unixtime_to_number(conversion, value) end function Makie.convert_dim_value(conversion::UnixTimeConversion, values::AbstractArray{UnixTime}) - unixtime_to_number.(tuple(conversion), value) + unixtime_to_number.(tuple(conversion), values) end function Makie.convert_dim_value(conversion::UnixTimeConversion, attr, values, prev_values) - unixtime_to_number.(tuple(conversion), value) + unixtime_to_number.(tuple(conversion), values) end function Makie.convert_dim_observable(conversion::UnixTimeConversion, values::Observable, deregister) From a3ee85f49dfaf247cae088a7de47eabe4e9ad251 Mon Sep 17 00:00:00 2001 From: Ross Viljoen Date: Mon, 21 Jul 2025 08:52:07 +0200 Subject: [PATCH 5/5] bump patch --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 064c0a5..7abff29 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "UnixTimes" uuid = "ab1a18e7-b408-4913-896c-624bb82ed7f4" authors = ["Christian Rorvik "] -version = "1.7.1" +version = "1.7.2" [deps] Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"