Skip to content

Conversation

@jsiirola
Copy link
Member

@jsiirola jsiirola commented Dec 2, 2025

Fixes # .

Summary/Motivation:

This started as an update the to SOL file parser to resolve some holes in the parse logic around parsing AMPL options, and turned into a significant rework of the Ipopt solver interface.

Changes proposed in this PR:

  • rewrite of the SOL file parser. The parser no longer requires any external information to parse a SOL file.
  • update the ipopt log parser to make the iteration log parse cleaner
  • rework how ipopt options are parsed so that both command line and option file options can be processed in a single pass through the user-provided options. For efficiency, iterate over the (usually much shorter) list us user-provided options and not the list of all known options.
  • refactor the ipopt interface so that in the future the bulk of it can be abstracted into a generic "ASL" interface that other ASL solvers can leverage.
  • add a delete= option to the TempfileManager contexts so that we can create "unmanaged" temporary files through the context.
  • update some documentation
  • expand test coverage (cover 100% of the ipopt interface!)

Legal Acknowledgement

By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution:

  1. I agree my contributions are submitted under the BSD license.
  2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

@codecov
Copy link

codecov bot commented Dec 2, 2025

Codecov Report

❌ Patch coverage is 97.78870% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.47%. Comparing base (dcaba42) to head (88816e0).

Files with missing lines Patch % Lines
pyomo/contrib/solver/solvers/asl_sol_reader.py 95.47% 9 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3792      +/-   ##
==========================================
+ Coverage   89.42%   89.47%   +0.05%     
==========================================
  Files         909      909              
  Lines      105579   105555      -24     
==========================================
+ Hits        94411    94449      +38     
+ Misses      11168    11106      -62     
Flag Coverage Δ
builders 29.14% <18.18%> (+0.02%) ⬆️
default 86.10% <97.78%> (?)
expensive 35.79% <17.69%> (?)
linux 86.78% <97.54%> (-2.40%) ⬇️
linux_other 86.78% <97.54%> (+0.05%) ⬆️
osx 82.94% <97.54%> (+0.05%) ⬆️
win 85.04% <94.59%> (+0.04%) ⬆️
win_other 85.04% <94.59%> (+0.04%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant