v0.5.0
powerio-pkg:NetworkPackageis the one package type name (CompilerPackage
is gone); the Julia binding already leads withNetworkPackage. The.pio.json
format is unchanged.- Python API: the seven module level
package_*functions are replaced by the
powerio.Packagehandle class, which parses the envelope once and exposes
model_kind,operating_points(),materialize_operating_point(),
as_balanced()/as_multiconductor(),validate(),validation(),
diagnostics(), and the multiconductor to balanced preflight and lowering. .pio.jsonoperating points: the per pointlabelandduration_hoursfields
are gone;time_axis.labelsandtime_axis.duration_hours(indexed by
points[].index) are the one source of truth. Readers ignore the old fields.- Transmission formats: added GOC3 JSON input and Surge JSON read and write paths.
GOC3 packages lift source time series into.pio.jsonoperating_points,
and package APIs can materialize one point into a static package. - GOC3 reader fixes: branches with
additional_shuntkeep the line charging
(b/2per terminal added to the extra shunts, per the GO Challenge 3
formulation);ta_lb/ta_ubmap to anActiveFlowtransformer control
range instead of fabricatingangmin/angmaxbus angle limits; producers
and consumers honorinitial_status.on_statuslike every other record type;
object form section keys sort under a total order (mixed numeric and non
numeric keys no longer risk a sort panic). powerio-pkg: GOC3 operating point extraction now consumes the parser's own
document walking (device_rows,section,cost_atshared through a
bridge), so update row indices match the payload by construction, including
devices without auid. A failed extraction attaches a
READ.GOC3.OPERATING_POINTS_DROPPEDdiagnostic instead of silently
producing a static only package. Materialized packages clearpackage_id
(the parent id lives inorigin.parent_package_id).- PSS/E
.raw: revision aware record layouts for v34/v35 transformer winding
lines (twelve ratings,NODE), v35 generator records (NREG,BASLOD),
and v35 switched shunts (NREG, per block status triples), on both read and
write; the 2W/3W transformer split accepts float formKfields. The
case14_v34.raw/case14_v35.rawfixtures are regenerated in the genuine
layouts. - PSLF
.epcwriter: parallel loads and shunts on one bus get distinct ids
(extras["id"]preferred, positional fallback); the reader captures load,
shunt, and SVD ids intoextras["id"]so they survive cross format writes. - PowerWorld
.pwb: the table location search runs under a work budget, so a
crafted file fails with a read error instead of pinning a core for hours. - Surge JSON writer warns when named branch rating sets are dropped, like every
other lossy writer. - Writing a read only format (
goc3-json) returns the new
Error::WriteUnsupportedinstead of a misleadingUnknownFormat. - C ABI: the panic guard now covers index construction in the parse entry
points;pio_package_validatedocuments its exclusive access requirement
(the one nonconstentry point) and the header preamble scopes the
concurrent read guarantee accordingly;PioDistNetworkgains the same
compile timeSend + Syncassertion as the other handles. SourceFormat::name()is the one source format name mapping; the package,
CLI, and Python copies are gone.
What's Changed
- draft: v0.5.0/v1.0.0-alpha - prepare IR structs for stable construction by @samtalki in #169
- Add package operating points, GoC3, and Surge JSON support by @samtalki in #172
Full Changelog: v0.4.0...v0.5.0