From 5f06455c147ec2f782fac2ac03e18fb8e4af0054 Mon Sep 17 00:00:00 2001 From: Abel Soares Siqueira Date: Fri, 31 May 2024 12:25:18 +0200 Subject: [PATCH] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20Change=20optional=20?= =?UTF-8?q?args=20of=20select=5Foptimizers=20to=20kwargs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BREAKING CHANGE: 🧨 The API of select_optimizers changed to not have positional optional arguments. The problem is mandatory and the other arguments are keywords. ✅ Closes: #159 --- src/selection.jl | 6 +++--- src/solve.jl | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/selection.jl b/src/selection.jl index d42f638..7f93015 100644 --- a/src/selection.jl +++ b/src/selection.jl @@ -57,7 +57,7 @@ There are 7 optimizers available: ``` """ function select_optimizers( - nlp::AbstractNLPModel{T, S}, + nlp::AbstractNLPModel{T, S}; verbose = 1, highest_derivative_available::Integer = 2, ) where {T, S} @@ -151,9 +151,9 @@ function select_optimizers( return select end -function select_optimizers(model::JuMP.Model, args...; kwargs...) +function select_optimizers(model::JuMP.Model; kwargs...) nlp = MathOptNLPModel(model) - return select_optimizers(nlp, args...; kwargs...) + return select_optimizers(nlp; kwargs...) end """Checker whether optimizers are Generic only""" diff --git a/src/solve.jl b/src/solve.jl index 818a9da..4235dd3 100644 --- a/src/solve.jl +++ b/src/solve.jl @@ -4,7 +4,11 @@ function minimize( highest_derivative_available::Integer = 2, kwargs..., ) - select = select_optimizers(nlp, verbose, highest_derivative_available) + select = select_optimizers( + nlp; + verbose = verbose, + highest_derivative_available = highest_derivative_available, + ) (verbose ≥ 1) && println("Solve using $(first(select).name):") solver = first(select) return minimize(Val(Symbol(solver.name)), nlp; verbose = verbose, kwargs...) @@ -16,7 +20,11 @@ function minimize( highest_derivative_available::Integer = 2, kwargs..., ) - select = select_optimizers(nlp, verbose, highest_derivative_available) + select = select_optimizers( + nlp; + verbose = verbose, + highest_derivative_available = highest_derivative_available, + ) nls_select = select[select.specialized_nls, :] solver = if !isempty(nls_select) first(nls_select)