Skip to content

Commit

Permalink
Change convert_component! argument order
Browse files Browse the repository at this point in the history
 - For all non-deprecated convert_component! methods, use the argument
   order: system, old component, new component type
 - Deprecate old convert_component! methods for backwards compatibility
 - Test deprecation
 - Run formatter
  • Loading branch information
GabrielKS committed Oct 24, 2023
1 parent 9c7ef0f commit 703762a
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 16 deletions.
12 changes: 6 additions & 6 deletions src/base.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1920,9 +1920,9 @@ Converts a Line component to a MonitoredLine component and replaces the original
system
"""
function convert_component!(
linetype::Type{MonitoredLine},
sys::System,
line::Line,
sys::System;
linetype::Type{MonitoredLine};
kwargs...,
)
new_line = linetype(
Expand Down Expand Up @@ -1954,9 +1954,9 @@ Converts a MonitoredLine component to a Line component and replaces the original
system
"""
function convert_component!(
linetype::Type{Line},
sys::System,
line::MonitoredLine,
sys::System;
linetype::Type{Line};
kwargs...,
)
force = get(kwargs, :force, false)
Expand Down Expand Up @@ -1996,9 +1996,9 @@ Converts a PowerLoad component to a StandardLoad component and replaces the orig
system. Does not set any fields in StandardLoad that lack a PowerLoad equivalent
"""
function convert_component!(
new_type::Type{StandardLoad},
sys::System,
old_load::PowerLoad,
sys::System;
new_type::Type{StandardLoad};
kwargs...,
)
new_load = new_type(;
Expand Down
12 changes: 12 additions & 0 deletions src/deprecated.jl
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
# BEGIN 2.0.0 deprecations
Base.@deprecate convert_component!(
linetype::Type{MonitoredLine},
line::Line,
sys::System;
kwargs...,
) convert_component!(sys, line, linetype; kwargs...)
Base.@deprecate convert_component!(
linetype::Type{Line},
line::MonitoredLine,
sys::System;
kwargs...,
) convert_component!(sys, line, linetype; kwargs...)
40 changes: 39 additions & 1 deletion test/test_deprecations.jl
Original file line number Diff line number Diff line change
@@ -1 +1,39 @@
# Currently no 2.0.0 deprecations
@testset "Test deprecated convert_component!" begin
# Test copied from test_powersystemconstructors.jl
test_line_conversion =
() -> begin
sys = System(joinpath(BAD_DATA, "case5_re.m"))
l = get_component(Line, sys, "bus2-bus3-i_4")
initial_time = Dates.DateTime("2020-01-01T00:00:00")
dates = collect(
initial_time:Dates.Hour(1):Dates.DateTime("2020-01-01T23:00:00"),
)
data = collect(1:24)
ta = TimeSeries.TimeArray(dates, data, [get_name(l)])
name = "active_power_flow"
time_series = SingleTimeSeries(; name = name, data = ta)
add_time_series!(sys, l, time_series)
@test get_time_series(SingleTimeSeries, l, name) isa SingleTimeSeries
@test_deprecated PSY.convert_component!(MonitoredLine, l, sys)
@test isnothing(get_component(Line, sys, "bus2-bus3-i_4"))
mline = get_component(MonitoredLine, sys, "bus2-bus3-i_4")
@test !isnothing(mline)
@test get_name(mline) == "bus2-bus3-i_4"
@test get_time_series(SingleTimeSeries, mline, name) isa SingleTimeSeries
@test_deprecated @test_throws ErrorException convert_component!(
Line,
get_component(MonitoredLine, sys, "bus2-bus3-i_4"),
sys,
)
@test_deprecated convert_component!(
Line,
get_component(MonitoredLine, sys, "bus2-bus3-i_4"),
sys;
force = true,
)
line = get_component(Line, sys, "bus2-bus3-i_4")
@test !isnothing(mline)
@test get_time_series(SingleTimeSeries, line, name) isa SingleTimeSeries
end
@test_logs (:error,) min_level = Logging.Error match_mode = :any test_line_conversion()
end
20 changes: 11 additions & 9 deletions test/test_powersystemconstructors.jl
Original file line number Diff line number Diff line change
Expand Up @@ -146,21 +146,21 @@ end
time_series = SingleTimeSeries(; name = name, data = ta)
add_time_series!(sys, l, time_series)
@test get_time_series(SingleTimeSeries, l, name) isa SingleTimeSeries
PSY.convert_component!(MonitoredLine, l, sys)
PSY.convert_component!(sys, l, MonitoredLine)
@test isnothing(get_component(Line, sys, "bus2-bus3-i_4"))
mline = get_component(MonitoredLine, sys, "bus2-bus3-i_4")
@test !isnothing(mline)
@test get_name(mline) == "bus2-bus3-i_4"
@test get_time_series(SingleTimeSeries, mline, name) isa SingleTimeSeries
@test_throws ErrorException convert_component!(
Line,
get_component(MonitoredLine, sys, "bus2-bus3-i_4"),
sys,
get_component(MonitoredLine, sys, "bus2-bus3-i_4"),
Line,
)
convert_component!(
Line,
sys,
get_component(MonitoredLine, sys, "bus2-bus3-i_4"),
sys;
Line;
force = true,
)
line = get_component(Line, sys, "bus2-bus3-i_4")
Expand All @@ -183,17 +183,19 @@ end
ta = TimeSeries.TimeArray(dates, data, [component_name])
time_series = SingleTimeSeries(; name = ts_name, data = ta)
add_time_series!(sys, old_component, time_series)
@test get_time_series(SingleTimeSeries, old_component, ts_name) isa SingleTimeSeries
@test get_time_series(SingleTimeSeries, old_component, ts_name) isa
SingleTimeSeries

convert_component!(StandardLoad, old_component, sys)
convert_component!(sys, old_component, StandardLoad)
@test isnothing(get_component(typeof(old_component), sys, component_name))
new_component = get_component(StandardLoad, sys, component_name)
@test !isnothing(new_component)
@test get_name(new_component) == component_name
@test get_time_series(SingleTimeSeries, new_component, ts_name) isa SingleTimeSeries
@test get_time_series(SingleTimeSeries, new_component, ts_name) isa
SingleTimeSeries
# Conversion back is not implemented
end

@test_logs (:error,) min_level = Logging.Error match_mode = :any test_line_conversion()
test_load_conversion()
end

0 comments on commit 703762a

Please sign in to comment.