Weak-dependency extension on ExaPowerIO (uuid 14903efe-9500-4d7f-a589-7ab7e15da6de, the typed data layer ExaModelsPower consumes). to_powerdata reproduces parse_matpower_inner exactly (per-unit ÷baseMVA, radians, c1..c8 via the BranchData ctor, dense bus reindex, filtered PV/slack inference), producing an ExaPowerIO PowerData{T}; plus a drop-in parse_ac_power_data NamedTuple so PowerIO feeds ExaModelsPower.build_polar_opf / build_rect_opf / build_dcopf directly (there is no opf_model entry point — that was a mistake in the original issue).
Value-add: this brings the formats ExaPowerIO can't read (PSS/E, PowerWorld, PowerModels JSON) into the Exa optimization stack. DoD: value-for-value vs ExaPowerIO's filtered=true parse.
Weak-dependency extension on ExaPowerIO (uuid
14903efe-9500-4d7f-a589-7ab7e15da6de, the typed data layer ExaModelsPower consumes).to_powerdatareproducesparse_matpower_innerexactly (per-unit ÷baseMVA, radians,c1..c8via theBranchDatactor, dense bus reindex, filtered PV/slack inference), producing an ExaPowerIOPowerData{T}; plus a drop-inparse_ac_power_dataNamedTuple so PowerIO feedsExaModelsPower.build_polar_opf/build_rect_opf/build_dcopfdirectly (there is noopf_modelentry point — that was a mistake in the original issue).Value-add: this brings the formats ExaPowerIO can't read (PSS/E, PowerWorld, PowerModels JSON) into the Exa optimization stack. DoD: value-for-value vs ExaPowerIO's
filtered=trueparse.