Skip to content

Commit 7f2a0b5

Browse files
author
Christopher Doris
committed
fix(numpydates): resolve method ambiguity by splitting unions
1 parent b949573 commit 7f2a0b5

File tree

2 files changed

+44
-14
lines changed

2 files changed

+44
-14
lines changed

src/NumpyDates/InlineDateTime64.jl

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,19 @@ end
3030

3131
# constructors
3232

33-
function InlineDateTime64{U}(
34-
v::Union{AbstractDateTime64,AbstractString,Dates.DateTime,Dates.Date},
35-
) where {U}
33+
function InlineDateTime64{U}(v::AbstractDateTime64) where {U}
34+
InlineDateTime64{U}(value(DateTime64(v, U)))
35+
end
36+
37+
function InlineDateTime64{U}(v::AbstractString) where {U}
38+
InlineDateTime64{U}(value(DateTime64(v, U)))
39+
end
40+
41+
function InlineDateTime64{U}(v::Dates.DateTime) where {U}
42+
InlineDateTime64{U}(value(DateTime64(v, U)))
43+
end
44+
45+
function InlineDateTime64{U}(v::Dates.Date) where {U}
3646
InlineDateTime64{U}(value(DateTime64(v, U)))
3747
end
3848

@@ -47,10 +57,19 @@ function InlineDateTime64{U}(
4757
InlineDateTime64{U}(value(DateTime64(v, f, U)))
4858
end
4959

50-
function InlineDateTime64(
51-
v::Union{AbstractDateTime64,AbstractString,Dates.DateTime,Dates.Date},
52-
u::UnitArg = defaultunit(v),
53-
)
60+
function InlineDateTime64(v::AbstractDateTime64, u::UnitArg = defaultunit(v))
61+
InlineDateTime64{unitparam(u)}(v)
62+
end
63+
64+
function InlineDateTime64(v::AbstractString, u::UnitArg = defaultunit(v))
65+
InlineDateTime64{unitparam(u)}(v)
66+
end
67+
68+
function InlineDateTime64(v::Dates.DateTime, u::UnitArg = defaultunit(v))
69+
InlineDateTime64{unitparam(u)}(v)
70+
end
71+
72+
function InlineDateTime64(v::Dates.Date, u::UnitArg = defaultunit(v))
5473
InlineDateTime64{unitparam(u)}(v)
5574
end
5675

src/NumpyDates/InlineTimeDelta64.jl

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,27 @@ end
2828

2929
# constructors
3030

31-
function InlineTimeDelta64{U}(
32-
v::Union{AbstractTimeDelta64,AbstractString,Dates.Period},
33-
) where {U}
31+
function InlineTimeDelta64{U}(v::AbstractTimeDelta64) where {U}
3432
InlineTimeDelta64{U}(value(TimeDelta64(v, U)))
3533
end
3634

37-
function InlineTimeDelta64(
38-
v::Union{AbstractTimeDelta64,AbstractString,Dates.Period},
39-
u::UnitArg = defaultunit(v),
40-
)
35+
function InlineTimeDelta64{U}(v::AbstractString) where {U}
36+
InlineTimeDelta64{U}(value(TimeDelta64(v, U)))
37+
end
38+
39+
function InlineTimeDelta64{U}(v::Dates.Period) where {U}
40+
InlineTimeDelta64{U}(value(TimeDelta64(v, U)))
41+
end
42+
43+
function InlineTimeDelta64(v::AbstractTimeDelta64, u::UnitArg = defaultunit(v))
44+
InlineTimeDelta64{unitparam(u)}(v)
45+
end
46+
47+
function InlineTimeDelta64(v::AbstractString, u::UnitArg = defaultunit(v))
48+
InlineTimeDelta64{unitparam(u)}(v)
49+
end
50+
51+
function InlineTimeDelta64(v::Dates.Period, u::UnitArg = defaultunit(v))
4152
InlineTimeDelta64{unitparam(u)}(v)
4253
end
4354

0 commit comments

Comments
 (0)