Skip to content

Commit aaa2e41

Browse files
Add Dates.canonicalize(::Period) (#726)
1 parent b6e65f2 commit aaa2e41

File tree

4 files changed

+28
-3
lines changed

4 files changed

+28
-3
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "Compat"
22
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
3-
version = "3.21.0"
3+
version = "3.22.0"
44

55
[deps]
66
Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ changes in `julia`.
5555

5656
## Supported features
5757

58+
* `Dates.canonicalize` can now take a `Period` as an input ([#37391]) (since Compat 3.22)
59+
5860
* Import renaming is available through the `@compat` macro, e.g. `@compat import LinearAlgebra as LA` and
5961
`@compat import LinearAlgebra: cholesky as c, lu as l`. *Note:* Import renaming of macros is not
6062
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
224226
[#29634]: https://github.com/JuliaLang/julia/pull/29634
225227
[#35243]: https://github.com/JuliaLang/julia/pull/35243
226228
[#37396]: https://github.com/JuliaLang/julia/pull/37396
229+
[#37391]: https://github.com/JuliaLang/julia/pull/37391

src/Compat.jl

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
module Compat
22

3+
import Dates
4+
using Dates: Period, CompoundPeriod
5+
36
import LinearAlgebra
47
using LinearAlgebra: Adjoint, Diagonal, Transpose, UniformScaling, RealHermSymComplexHerm, BLAS
58

@@ -787,7 +790,7 @@ if VERSION < v"1.6.0-DEV.15"
787790
end
788791
return line, i
789792
end
790-
793+
791794
function parseall(text::AbstractString; filename="none")
792795
filename = Symbol(filename)
793796
ex = Expr(:toplevel)
@@ -806,6 +809,11 @@ else
806809
using .Meta: parseatom, parseall
807810
end
808811

812+
# https://github.com/JuliaLang/julia/pull/37391
813+
if VERSION < v"1.6.0-DEV.820"
814+
Dates.canonicalize(p::Period) = Dates.canonicalize(CompoundPeriod(p))
815+
end
816+
809817
include("iterators.jl")
810818
include("deprecated.jl")
811819

test/runtests.jl

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Compat
2+
using Dates
23
using Test
34
using UUIDs: UUID, uuid1, uuid_version
45

@@ -728,7 +729,7 @@ end
728729

729730
ex = Compat.parseall(
730731
raw"""
731-
732+
732733
begin a = 1 end
733734
734735
begin
@@ -751,6 +752,19 @@ end
751752
)
752753
end
753754

755+
# https://github.com/JuliaLang/julia/pull/37391
756+
@testset "Dates.canonicalize(::Period)" begin
757+
# reduce individual Period into most basic CompoundPeriod
758+
@test Dates.canonicalize(Dates.Nanosecond(1000000)) == Dates.canonicalize(Dates.Millisecond(1))
759+
@test Dates.canonicalize(Dates.Millisecond(1000)) == Dates.canonicalize(Dates.Second(1))
760+
@test Dates.canonicalize(Dates.Second(60)) == Dates.canonicalize(Dates.Minute(1))
761+
@test Dates.canonicalize(Dates.Minute(60)) == Dates.canonicalize(Dates.Hour(1))
762+
@test Dates.canonicalize(Dates.Hour(24)) == Dates.canonicalize(Dates.Day(1))
763+
@test Dates.canonicalize(Dates.Day(7)) == Dates.canonicalize(Dates.Week(1))
764+
@test Dates.canonicalize(Dates.Month(12)) == Dates.canonicalize(Dates.Year(1))
765+
@test Dates.canonicalize(Dates.Minute(24*60*1 + 12*60)) == Dates.canonicalize(Dates.CompoundPeriod([Dates.Day(1),Dates.Hour(12)]))
766+
end
767+
754768
include("iterators.jl")
755769

756770
# Import renaming, https://github.com/JuliaLang/julia/pull/37396,

0 commit comments

Comments
 (0)