GuillotineModels.CommandLine.SolversArgs
GuillotineModels.CommandLine.SolversArgs — ModuleSolversArgs module aggregates the methods necessary for making solvers available to use with GuillotineModels.CommandLine methods (especially run).
The package Requires.jl is used to implement GuillotineModels.SolversArgs.empty_configured_model(Val(:SOME_SOLVER)) only if SOME_SOLVER package is loaded.
The solver-specific methods this module implements for each supported solver are: GuillotineModels.Utilities.Args.{accepted_arg_list, throw_if_incompatible_options}, and GuillotineModels.CommandLine.SolversArgs. empty_configured_model. The GuillotineModels.Utilities methods are always available, not just when the respective solver package was imported.
The supported solvers are CPLEX, Gurobi, Cbc, and GLPK. Supporting new solvers is just a question of implementing a specialization of the three methods mentioned above for the specific solver (see the code for examples).
GuillotineModels.CommandLine.SolversArgs.empty_configured_model — Methodempty_configured_model(::Val{T}, p_args) :: JuMP-like ModelCreates an empty (no variables or constraints) and configured (p_args is used to set the parameters of an attached solver) model of the solver ::Val{T} (for example, passing ::Val{:CPLEX} will call the specialized method for CPLEX solver).
The options available for p_args are available in GuillotineModels. Utilities.Args.accepted_arg_list(::Val{SOLVER_PACKAGE_SYMBOL}).