diff --git a/Project.toml b/Project.toml index 53c44c07d..6f56ae9e9 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "Compat" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "3.21.0" +version = "3.22.0" [deps] Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" diff --git a/README.md b/README.md index ed3be9152..a763fea2b 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,8 @@ changes in `julia`. ## Supported features +* `Dates.canonicalize` can now take a `Period` as an input ([#37391]) (since Compat 3.22) + * Import renaming is available through the `@compat` macro, e.g. `@compat import LinearAlgebra as LA` and `@compat import LinearAlgebra: cholesky as c, lu as l`. *Note:* Import renaming of macros is not supported due to differences in parsing behavior ([#37396]). (since Compat 3.21). @@ -224,3 +226,4 @@ Note that you should specify the correct minimum version for `Compat` in the [#29634]: https://github.com/JuliaLang/julia/pull/29634 [#35243]: https://github.com/JuliaLang/julia/pull/35243 [#37396]: https://github.com/JuliaLang/julia/pull/37396 +[#37391]: https://github.com/JuliaLang/julia/pull/37391 diff --git a/src/Compat.jl b/src/Compat.jl index 241e28238..0e2448658 100644 --- a/src/Compat.jl +++ b/src/Compat.jl @@ -1,5 +1,8 @@ module Compat +import Dates +using Dates: Period, CompoundPeriod + import LinearAlgebra using LinearAlgebra: Adjoint, Diagonal, Transpose, UniformScaling, RealHermSymComplexHerm, BLAS @@ -787,7 +790,7 @@ if VERSION < v"1.6.0-DEV.15" end return line, i end - + function parseall(text::AbstractString; filename="none") filename = Symbol(filename) ex = Expr(:toplevel) @@ -806,6 +809,11 @@ else using .Meta: parseatom, parseall end +# https://github.com/JuliaLang/julia/pull/37391 +if VERSION < v"1.6.0-DEV.820" + Dates.canonicalize(p::Period) = Dates.canonicalize(CompoundPeriod(p)) +end + include("iterators.jl") include("deprecated.jl") diff --git a/test/runtests.jl b/test/runtests.jl index 63659a347..b528cbaa6 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,4 +1,5 @@ using Compat +using Dates using Test using UUIDs: UUID, uuid1, uuid_version @@ -728,7 +729,7 @@ end ex = Compat.parseall( raw""" - + begin a = 1 end begin @@ -751,6 +752,19 @@ end ) end +# https://github.com/JuliaLang/julia/pull/37391 +@testset "Dates.canonicalize(::Period)" begin + # reduce individual Period into most basic CompoundPeriod + @test Dates.canonicalize(Dates.Nanosecond(1000000)) == Dates.canonicalize(Dates.Millisecond(1)) + @test Dates.canonicalize(Dates.Millisecond(1000)) == Dates.canonicalize(Dates.Second(1)) + @test Dates.canonicalize(Dates.Second(60)) == Dates.canonicalize(Dates.Minute(1)) + @test Dates.canonicalize(Dates.Minute(60)) == Dates.canonicalize(Dates.Hour(1)) + @test Dates.canonicalize(Dates.Hour(24)) == Dates.canonicalize(Dates.Day(1)) + @test Dates.canonicalize(Dates.Day(7)) == Dates.canonicalize(Dates.Week(1)) + @test Dates.canonicalize(Dates.Month(12)) == Dates.canonicalize(Dates.Year(1)) + @test Dates.canonicalize(Dates.Minute(24*60*1 + 12*60)) == Dates.canonicalize(Dates.CompoundPeriod([Dates.Day(1),Dates.Hour(12)])) +end + include("iterators.jl") # Import renaming, https://github.com/JuliaLang/julia/pull/37396,