Skip to main content

PowerIO

PowerIO format and matrix flow

PowerIO 0.10 is the public beta of the 1.0 API. It parses power system data into typed values, converts supported formats, and builds sparse matrices and graph data.

A parse returns a PioModule: one typed value plus its sources, diagnostics, source map, and history. The value can be a network, calculation instance, solution, time series, or scenario set.

Install

cargo add powerio
pip install powerio
julia -e 'using Pkg; Pkg.add("PowerIO")'

Optional Python dependencies are installed separately:

pip install 'powerio[matrix]'
pip install 'powerio[graph]'
pip install 'powerio[all]'

Install the command line program with cargo install powerio-cli.

Parse and write

Rust:

use powerio::{BalancedNetwork, Destination, PioModule, Source};

let module = powerio::parse(Source::open("case9.m")?)?;
let module: PioModule<BalancedNetwork> = powerio::try_into_typed(module)?;
let module = module.map_value(powerio::PioValue::from);
powerio::write_module_as(&module, "matpower", Destination::path("copy.m"))?;
# Ok::<(), Box<dyn std::error::Error>>(())

Python detects the kind without a type argument:

import powerio

module = powerio.parse("case9.m")
module.kind                         # "balanced_network"
network = module.value
module.diagnostics()               # native diagnostic records
network.write_file("copy.m", "matpower")  # byte exact same format write

Pass value_type=powerio.BalancedNetwork only when the caller wants to assert the expected kind while parsing.

Julia uses multiple dispatch on the typed value:

using PowerIO

module_ = parse_file("case9.m")     # PioModule{BalancedNetwork}
network = module_.value
n_buses(network)                    # 9
diagnostics(module_)
write_file(module_, "copy.m")

The command line interface uses the same readers and writers:

powerio convert case9.m --to psse -o case9.raw
powerio module case9.m -o case9.pio.json
powerio verify case9.m --kind bdoubleprime
powerio sensitivities case9.m -o out

An unchanged module writes its source format byte for byte. Cross format conversion keeps what the destination can represent and returns a diagnostic for each loss. .pio.json version 1 stores a module for exchange between PowerIO consumers; it does not replace domain formats such as MATPOWER, PSS/E, or OpenDSS.

Supported values and formats

Balanced network formats:

  • MATPOWER .m
  • PSS/E .raw revisions 33, 34, and 35
  • PowerWorld .aux; .pwb is read only and .pwd uses the display API
  • GE PSLF .epc
  • PowerModels JSON
  • Egret JSON
  • pandapower JSON
  • PyPSA CSV directories
  • Surge JSON

Multiconductor distribution formats:

  • OpenDSS .dss
  • PowerModelsDistribution engineering JSON
  • IEEE BMOPF JSON

Calculation and dataset inputs:

  • DOE GO Challenge 3 JSON produces AcScucInstance
  • BMOPF JSON produces McAcOpfInstance
  • DeepMind OPFData JSON produces AcOpfSolution
  • GridFM Parquet produces ScenarioSet<BalancedNetwork>
  • Supported PyPSA and Egret profiles can produce typed time series

Formats and Fidelity lists the supported profile and write behavior for every format.

Package structure

powerio-core     Source, PioModule, diagnostics, time series, and output types
powerio-tx       balanced transmission model, parsers, and writers
powerio-dist     multiconductor distribution model and format support
powerio-prob     operating points, calculation instances, and solutions
powerio-matrix   sparse matrices, sensitivities, and graph data
powerio          entry facade, dynamic values, dispatch, and .pio.json
powerio-capi     C ABI for C, C++, Julia, and other bindings
powerio-py       native extension for the Python package
powerio-cli      command line interface and terminal interface

powerio-tx and powerio-dist are independent and share powerio-core. powerio-prob is matrix free. powerio-matrix depends on the component crates, and the powerio facade provides the combined entry point without defining a preferred universal power system format.

Documentation

Migration notes, retired names, ABI history, internal crate rules, performance evidence, and release checks are under Developer Guides.

License

PowerIO is available under either the Apache License 2.0 or the MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

powerio-0.10.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

powerio-0.10.0-cp39-abi3-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.9+Windows x86-64

powerio-0.10.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

powerio-0.10.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.6 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

powerio-0.10.0-cp39-abi3-macosx_11_0_arm64.whl (5.6 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

powerio-0.10.0-cp39-abi3-macosx_10_12_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file powerio-0.10.0.tar.gz.

File metadata

  • Download URL: powerio-0.10.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for powerio-0.10.0.tar.gz
Algorithm Hash digest
SHA256 4afc01514870f2161930411e3ec854eec1f8103722d63858a6ba720364e88152
MD5 1d9864df4a478a96a5161404bbae709e
BLAKE2b-256 3fd8ec9607f144d70ceaa745b1d0ba071553117cbe6f8096b6f2c99fbf31577c

See more details on using hashes here.

Provenance

The following attestation bundles were made for powerio-0.10.0.tar.gz:

Publisher: python.yml on eigenergy/powerio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file powerio-0.10.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: powerio-0.10.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for powerio-0.10.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8533eda673996492da8e6a46a8e68d9f6d220a53bddc42907b8654f92f783d1a
MD5 236e12be304aabdb3a1e84fcb2f913e8
BLAKE2b-256 1e133aa5895988aa6455304800a349a8024e678d3dc12eb1a404539d687e0b23

See more details on using hashes here.

Provenance

The following attestation bundles were made for powerio-0.10.0-cp39-abi3-win_amd64.whl:

Publisher: python.yml on eigenergy/powerio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file powerio-0.10.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for powerio-0.10.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e35b60c32f00055dd4e53f525bec8a2c4e90c5a230e2b6017a338f4318ab09f1
MD5 f694974342f8a3ee5a48714bdbf26e5c
BLAKE2b-256 e12752cc8df6cf041f8d0ed5ab04356b600d07404f173e647ac1b9a5ebfd7d9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for powerio-0.10.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: python.yml on eigenergy/powerio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file powerio-0.10.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for powerio-0.10.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9851fa0723e21db0235bc04e9fc971afd35d7a2342e0f26246095695bfccd26b
MD5 955efea98b62d31c581d4dce252bce05
BLAKE2b-256 4a991dc769dd4f97d11537065962845cb8ea3405a0fd6a9ad977ed3174204954

See more details on using hashes here.

Provenance

The following attestation bundles were made for powerio-0.10.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: python.yml on eigenergy/powerio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file powerio-0.10.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for powerio-0.10.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6ae8e820f9c020cd32853f1380b1b6ebc01433fab8cb1a9cb3d2986a807bf23e
MD5 e977d446289e0790a67aef925339d832
BLAKE2b-256 2b7e67c9552b990624eb53fefe53da01f0b26b309b0e2e650ea56e4669d19a84

See more details on using hashes here.

Provenance

The following attestation bundles were made for powerio-0.10.0-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: python.yml on eigenergy/powerio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file powerio-0.10.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for powerio-0.10.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fd0a2984d95ac6fbd6a1b16967041abb4c1791d48859cab7fe28d80ea0d562b7
MD5 168f4c43ab55d7cbea59bb0bd2d781b1
BLAKE2b-256 56b5d9b654a44df0728f18441a0c311810c696564ff27806f11e2ff3e910804d

See more details on using hashes here.

Provenance

The following attestation bundles were made for powerio-0.10.0-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: python.yml on eigenergy/powerio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.11.2

6 files

0.11.1

6 files

0.11.0

6 files

This release

0.10.0 This release

6 files

0.9.0

6 files

0.8.3

6 files

0.8.2

6 files

0.8.1

6 files

0.7.3

6 files

0.7.2

6 files

0.7.1

6 files

0.7.0

6 files

0.6.3

6 files

0.6.2

6 files

0.6.1

6 files

0.6.0

6 files

0.5.1

6 files

0.5.0

6 files

0.4.0

6 files

0.3.3

6 files

0.3.2

6 files

0.3.1

6 files

0.3.0

6 files

0.2.4

6 files

0.2.3

6 files

0.2.2

6 files

0.2.1

6 files

0.2.0

6 files

0.1.1

6 files

0.1.0

6 files

0.0.1

6 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page