Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
1177492
Added new GAMS solver interface, writer, and solution loader. WIP: un…
Aug 7, 2025
2385654
Ran black -S -C on commited files
Aug 7, 2025
b36086f
Typo!
mrmundt Aug 7, 2025
e91e480
Added ignore checking for constant in the objective function during w…
Aug 7, 2025
b060096
Added support for add_options for multiple solver_options
Aug 8, 2025
96ba646
typo
Aug 8, 2025
b0f16a3
ran black formatter
Aug 8, 2025
dde656c
added add_options in the solver_interface
Aug 8, 2025
3476f72
Fixed bug with unable to create tmpdir. Updated test_gams_v2.py
Aug 8, 2025
ddfd98c
Merge branch 'main' into GAMS_new_solver_interface
AnhTran01 Aug 8, 2025
eb0a3db
Added handling single bounded variable case (None,#) or (#, None)
Aug 10, 2025
c6d2d01
Match solver interface and writer configs to prevent implicit definit…
Aug 11, 2025
2a6dcb7
Added new gams solver interface for test_all_solvers_list()
Aug 12, 2025
b6ead27
Fixed bug of handling valid ub when writing pyomo expression
Aug 12, 2025
89f80e0
Fixed bug when using ComponentMap to extract duals in gms_sol_reader.py
Aug 13, 2025
b0c3450
Corrected handling of solution_loader. Implemented bounded constraint…
Aug 14, 2025
a9df1d7
Added offdigit based on error log message suggestion
Aug 14, 2025
e04c89f
Merge branch 'main' into GAMS_new_solver_interface
mrmundt Aug 15, 2025
518758e
Fixed bug of extracting constraint dual when alias exits (for bounded…
Aug 18, 2025
a2ef9cc
Added aliases as part of parse_dat_results to be consistent with pars…
Aug 18, 2025
c33095d
Removed code duplication between the solver interface and writer by p…
Aug 18, 2025
f609ca2
Revised code based on John's review. WIP: Handling rehash within avai…
Aug 19, 2025
ec5aa6a
Re-added config into available and version, and deprecated test that …
Aug 19, 2025
e760a1c
Merge branch 'main' into GAMS_new_solver_interface
mrmundt Aug 19, 2025
7bb817b
Sanity check config.writer_config.put_results_format without setdefault
Aug 20, 2025
72beeaf
Allow user to modify writer config via solver_options. Fixed bug of s…
Aug 20, 2025
3dc83ca
Merge branch 'Pyomo:main' into GAMS_new_solver_interface
AnhTran01 Aug 20, 2025
5c87b75
Corrected exeception type raised when solver return infeasible. Added…
Aug 20, 2025
d6aa9ff
Corrected test_gams_v2.py to match error raised. Corrected error mess…
Aug 20, 2025
aba0eed
Merge branch 'Pyomo:main' into GAMS_new_solver_interface
AnhTran01 Aug 20, 2025
f85d217
Prevent rewrite of termination condition in modelstat if the value is…
Aug 20, 2025
0e94742
Added an gams_solver_options (handled via solver_option in solve). Ad…
Aug 20, 2025
9d5758e
Divided solver and model termination condition into separate config.
Aug 21, 2025
d1285e3
Merge branch 'Pyomo:main' into GAMS_new_solver_interface
AnhTran01 Aug 21, 2025
2973d9c
Added unittest skipif for linux_3.9_slim and linux_3.12_numpy failed …
Aug 22, 2025
58362af
Corrected typos and added handling case for integer variable without …
Jan 6, 2026
94396a9
Removed duplicate config within solver and writer (row_order). Simpli…
Jan 6, 2026
6243b06
Removed duplicate error message string that is handled by pyomo.contr…
Jan 6, 2026
afa0ef0
Renamed to test_gams.py and added cache unittest for available and ve…
Jan 6, 2026
a723a06
Removed deprecated functions (_simple_model / _run_simple_model / _re…
Jan 6, 2026
bf8db4f
Updated the handling of bounds for integer variables by using INF and…
Jan 6, 2026
71a35e8
Added document_class_CONFIG to remove redundant documentation
Jan 13, 2026
d619cb3
Additional documentation cleanup
Jan 13, 2026
437a03a
Updated test_gams.py comments for standalone function _simple_model a…
Jan 13, 2026
f1b9b03
Moved gams_results in postsolve into results.extra_info
Jan 13, 2026
c677f71
Merge branch 'main' into GAMS_new_solver_interface
AnhTran01 Jan 13, 2026
f845c0c
ran black formatter
Jan 13, 2026
c44577d
Merge branch 'main' into GAMS_new_solver_interface
blnicho Jan 13, 2026
a92d26b
fixup of writing bounds
boxblox Jan 13, 2026
bc8bca3
Merge branch 'main' into GAMS_new_solver_interface
boxblox Jan 20, 2026
8ebf3a0
black 26.1.0 formatting
boxblox Jan 20, 2026
2f13aeb
Added results.solver_config in gams.py:solve
Jan 20, 2026
0f4cba1
keep solver_log in results object
boxblox Jan 21, 2026
225744d
Merge branch 'main' into GAMS_new_solver_interface
boxblox Jan 21, 2026
3c504ea
Apply suggestion from @mrmundt
boxblox Jan 22, 2026
331a367
Apply suggestion from @mrmundt
boxblox Jan 22, 2026
0e0c637
fixups
boxblox Jan 22, 2026
08c63e7
Merge branch 'main' into GAMS_new_solver_interface
boxblox Jan 22, 2026
6ff3315
change rehash --> recheck kwarg name
boxblox Feb 3, 2026
05a7888
more rehash --> recheck
boxblox Feb 3, 2026
01868bc
Merge branch 'main' into GAMS_new_solver_interface
boxblox Feb 3, 2026
41ad393
use time.perf_counter
boxblox Feb 3, 2026
d5a8bbb
fixup to perf_counter logic
boxblox Feb 3, 2026
ed3c027
add new hidden class attribute _log_levels that effectively caches th…
boxblox Feb 3, 2026
eda40b4
use logger instead of print statements
boxblox Feb 3, 2026
2da1c06
black formatting
boxblox Feb 4, 2026
358898a
reconfigure termination conditions to use new classes
boxblox Feb 4, 2026
770350a
add Termination.provenInfeasible as a possible condition, GAMS return…
boxblox Feb 4, 2026
178e111
remove unused import legacy_termination_condition_map
boxblox Feb 4, 2026
15346a5
Merge branch 'main' into GAMS_new_solver_interface
boxblox Feb 4, 2026
ab9c6e9
remove redundant code
boxblox Feb 4, 2026
14612f9
Clean up imports
mrmundt Feb 6, 2026
466a469
remove SolverStatus objects
boxblox Feb 6, 2026
17fc436
Add GAMS v2 to online docs
mrmundt Feb 6, 2026
d56fd3d
Merge branch 'GAMS_new_solver_interface' of github.com:AnhTran01/pyom…
mrmundt Feb 6, 2026
d8ecab8
Split solve into solve and _postsolve
mrmundt Feb 6, 2026
b0d957c
Missed some unnecessary imports in test_gams
mrmundt Feb 6, 2026
e3e4182
Unnecessary imports in test_solvers
mrmundt Feb 6, 2026
5aae005
Keep it in the original place
mrmundt Feb 6, 2026
e32b768
remove unnecessary code comments (ostream)
boxblox Feb 6, 2026
7d6907c
fix typo in type hint syntax
boxblox Feb 12, 2026
c78e5df
Update pyomo/contrib/solver/solvers/gms_sol_reader.py
boxblox Feb 12, 2026
71ac96b
black formatting and remove unreachable code
boxblox Feb 12, 2026
d6a25b6
black formatting again
boxblox Feb 12, 2026
8fe1401
Update pyomo/contrib/solver/solvers/gms_sol_reader.py
boxblox Feb 12, 2026
714071a
simplifications and remove more unreachable code
boxblox Feb 12, 2026
e639869
black
boxblox Feb 12, 2026
a6485a8
Merge branch 'main' into GAMS_new_solver_interface
blnicho Feb 12, 2026
f5002bd
Fix typo in gms_sol_reader.py
blnicho Feb 12, 2026
2ab3f6e
Update pyomo/repn/plugins/gams_writer_v2.py
boxblox Feb 12, 2026
2837299
remove ctype check
boxblox Feb 13, 2026
fe7b43f
update version caching logic and clean up some unused imports
boxblox Feb 13, 2026
328b61a
.available() fixups
boxblox Feb 13, 2026
dca18e7
adjust tests for new .available method
boxblox Feb 13, 2026
840c5ae
Merge branch 'main' into GAMS_new_solver_interface
blnicho Feb 14, 2026
1d85594
Update copyright headers in new files
blnicho Feb 14, 2026
4292bbd
Update to use bool to check for tee and logfile
Feb 17, 2026
6b5d898
adjust _get_version in order to parse and find 'Demo' GAMS versions f…
boxblox Feb 17, 2026
d5b5504
update tests
boxblox Feb 17, 2026
158401d
fixup on return if version regex is not found
boxblox Feb 17, 2026
5088efa
explicit cast to float then set in dict
boxblox Feb 17, 2026
63b64e6
Update pyomo/contrib/solver/solvers/gams.py
boxblox Feb 17, 2026
27587a5
add some defensive code in case add_options is None, init with empty …
boxblox Feb 17, 2026
c446020
add domains for options in Config object
boxblox Feb 18, 2026
6995d41
Update pyomo/repn/plugins/gams_writer_v2.py
boxblox Feb 18, 2026
6629e01
add in more domains for Config object
boxblox Feb 18, 2026
21ad29a
Update pyomo/repn/plugins/gams_writer_v2.py
boxblox Feb 18, 2026
12d45ed
remove ftoa util and just use f-strings
boxblox Feb 18, 2026
82e5242
remove add_options
boxblox Feb 18, 2026
d7fc7f6
rename gams_solver_options -> gams_options
boxblox Feb 18, 2026
6316972
black formatting
boxblox Feb 18, 2026
08c9af9
remove logic to blindly pass options as gams_options, throw ValueErro…
boxblox Feb 18, 2026
2c17c48
fixup and simplify _exe_cache logic
boxblox Feb 18, 2026
10f5283
fixup handling of resLim with gams_options
boxblox Feb 18, 2026
9e1e2a7
Merge branch 'main' into GAMS_new_solver_interface
boxblox Feb 18, 2026
24d6be9
Simplify get_version logic, add TBD notes
jsiirola Feb 18, 2026
fed5968
Simplify importer (remove black whitespace)
jsiirola Feb 18, 2026
3bf77a5
Do not overwrite user-provided put_results_format
jsiirola Feb 18, 2026
5a11c23
NFC: linewrap, update docs/comments
jsiirola Feb 18, 2026
e2a201f
Fix version typos
jsiirola Feb 19, 2026
accb633
Mark gams tests with solver('gams')
jsiirola Feb 19, 2026
16582f7
NFC: wrap long lines
jsiirola Feb 19, 2026
7307463
Split simple solve to cehck both gdx and dat interfaces
jsiirola Feb 19, 2026
88968b9
Merge branch 'main' into GAMS_new_solver_interface
jsiirola Feb 19, 2026
27e5677
NFC: fix typo
jsiirola Feb 19, 2026
93b065d
gams: improve processing/reporting output when version check fails
jsiirola Feb 19, 2026
d8b3369
gams: avoid calling available() in solve()
jsiirola Feb 19, 2026
de13f17
gams: ensure gams is called from the working dir
jsiirola Feb 19, 2026
aa0ed97
gams: simplify processing of non-zero rc
jsiirola Feb 19, 2026
5adcffb
gams: expand testing
jsiirola Feb 19, 2026
843e644
Fix exception loading promals when no solution
jsiirola Feb 19, 2026
f763602
Fix typo in test
jsiirola Feb 19, 2026
2131b53
Attempt to associate Python files on Windows, if necessary
jsiirola Feb 19, 2026
e314e39
Skip test if python scripts aren't directly executable
jsiirola Feb 19, 2026
024c1e9
Rework config management in gams/gams_writer
jsiirola Feb 19, 2026
be4dd76
bugfix: typop when skipping tests
jsiirola Feb 19, 2026
d41d895
NFC: document attributes
jsiirola Feb 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions pyomo/contrib/solver/plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from .solvers.gurobi_persistent import GurobiPersistent
from .solvers.gurobi_direct import GurobiDirect
from .solvers.highs import Highs
from .solvers.gams import GAMS


def load():
Expand All @@ -34,3 +35,6 @@ def load():
SolverFactory.register(
name='highs', legacy_name='highs', doc='Persistent interface to HiGHS'
)(Highs)
SolverFactory.register(name='gams', legacy_name='gams_v2', doc='Interface to GAMS')(
GAMS
)
Loading
Loading