Commit 265345b
xhatspecific_spoke in cfg_vanilla took `scenario_dict` and `all_nodenames`
parameters but dropped both before constructing the spoke dict, so callers
got "missing data" errors at runtime:
* `all_nodenames` was not forwarded to _Xhat_Eval_spoke_foundation (sibling
spokes like xhatshuffle_spoke already forward it).
* `scenario_dict` should populate
opt_kwargs.options.xhat_specific_options.xhat_scenario_dict, which the
XhatSpecificInnerBound bounder reads at startup. Nothing was setting
that key, so the bounder hit a KeyError before it could try a candidate.
Fix:
- Forward all_nodenames through to _Xhat_Eval_spoke_foundation.
- Populate xhat_specific_options with xhat_scenario_dict (from the
argument) and xhat_solver_options (mirroring xhatlooper_spoke's pattern
of reusing iterk_solver_options).
Also fix the only known caller, examples/aircond/aircond_cylinders.py:
when `--solver-options` is passed alongside `--xhatspecific`, the override
loop reached into `xhat_looper_options` (which xhatspecific does not have)
instead of `xhat_specific_options`. Post-factory-fix this would still
KeyError; rename to the correct key.
Fixes #586
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 1cc109e commit 265345b
2 files changed
Lines changed: 7 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
315 | 315 | | |
316 | 316 | | |
317 | 317 | | |
318 | | - | |
| 318 | + | |
319 | 319 | | |
320 | 320 | | |
321 | 321 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1258 | 1258 | | |
1259 | 1259 | | |
1260 | 1260 | | |
| 1261 | + | |
1261 | 1262 | | |
1262 | 1263 | | |
1263 | 1264 | | |
1264 | 1265 | | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
1265 | 1271 | | |
1266 | 1272 | | |
1267 | 1273 | | |
| |||
0 commit comments