PowerIO
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
.rawrevisions 33, 34, and 35 - PowerWorld
.aux;.pwbis read only and.pwduses 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
- Guide
- Core concepts
- PowerIO intermediate representations
- Matrices and signs
- Rust, Python, Julia, and C
- Python API
- C ABI
- PowerIO.jl
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4afc01514870f2161930411e3ec854eec1f8103722d63858a6ba720364e88152
|
|
| MD5 |
1d9864df4a478a96a5161404bbae709e
|
|
| BLAKE2b-256 |
3fd8ec9607f144d70ceaa745b1d0ba071553117cbe6f8096b6f2c99fbf31577c
|
Provenance
The following attestation bundles were made for powerio-0.10.0.tar.gz:
Publisher:
python.yml on eigenergy/powerio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
powerio-0.10.0.tar.gz -
Subject digest:
4afc01514870f2161930411e3ec854eec1f8103722d63858a6ba720364e88152 - Sigstore transparency entry: 2645863702
- Sigstore integration time:
-
Permalink:
eigenergy/powerio@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/eigenergy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8533eda673996492da8e6a46a8e68d9f6d220a53bddc42907b8654f92f783d1a
|
|
| MD5 |
236e12be304aabdb3a1e84fcb2f913e8
|
|
| BLAKE2b-256 |
1e133aa5895988aa6455304800a349a8024e678d3dc12eb1a404539d687e0b23
|
Provenance
The following attestation bundles were made for powerio-0.10.0-cp39-abi3-win_amd64.whl:
Publisher:
python.yml on eigenergy/powerio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
powerio-0.10.0-cp39-abi3-win_amd64.whl -
Subject digest:
8533eda673996492da8e6a46a8e68d9f6d220a53bddc42907b8654f92f783d1a - Sigstore transparency entry: 2645864129
- Sigstore integration time:
-
Permalink:
eigenergy/powerio@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/eigenergy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Trigger Event:
release
-
Statement type:
File details
Details for the file powerio-0.10.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: powerio-0.10.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.5 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e35b60c32f00055dd4e53f525bec8a2c4e90c5a230e2b6017a338f4318ab09f1
|
|
| MD5 |
f694974342f8a3ee5a48714bdbf26e5c
|
|
| BLAKE2b-256 |
e12752cc8df6cf041f8d0ed5ab04356b600d07404f173e647ac1b9a5ebfd7d9f
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
powerio-0.10.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
e35b60c32f00055dd4e53f525bec8a2c4e90c5a230e2b6017a338f4318ab09f1 - Sigstore transparency entry: 2645863769
- Sigstore integration time:
-
Permalink:
eigenergy/powerio@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/eigenergy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Trigger Event:
release
-
Statement type:
File details
Details for the file powerio-0.10.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: powerio-0.10.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9851fa0723e21db0235bc04e9fc971afd35d7a2342e0f26246095695bfccd26b
|
|
| MD5 |
955efea98b62d31c581d4dce252bce05
|
|
| BLAKE2b-256 |
4a991dc769dd4f97d11537065962845cb8ea3405a0fd6a9ad977ed3174204954
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
powerio-0.10.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
9851fa0723e21db0235bc04e9fc971afd35d7a2342e0f26246095695bfccd26b - Sigstore transparency entry: 2645864015
- Sigstore integration time:
-
Permalink:
eigenergy/powerio@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/eigenergy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Trigger Event:
release
-
Statement type:
File details
Details for the file powerio-0.10.0-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: powerio-0.10.0-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ae8e820f9c020cd32853f1380b1b6ebc01433fab8cb1a9cb3d2986a807bf23e
|
|
| MD5 |
e977d446289e0790a67aef925339d832
|
|
| BLAKE2b-256 |
2b7e67c9552b990624eb53fefe53da01f0b26b309b0e2e650ea56e4669d19a84
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
powerio-0.10.0-cp39-abi3-macosx_11_0_arm64.whl -
Subject digest:
6ae8e820f9c020cd32853f1380b1b6ebc01433fab8cb1a9cb3d2986a807bf23e - Sigstore transparency entry: 2645863905
- Sigstore integration time:
-
Permalink:
eigenergy/powerio@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/eigenergy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Trigger Event:
release
-
Statement type:
File details
Details for the file powerio-0.10.0-cp39-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: powerio-0.10.0-cp39-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 6.3 MB
- Tags: CPython 3.9+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd0a2984d95ac6fbd6a1b16967041abb4c1791d48859cab7fe28d80ea0d562b7
|
|
| MD5 |
168f4c43ab55d7cbea59bb0bd2d781b1
|
|
| BLAKE2b-256 |
56b5d9b654a44df0728f18441a0c311810c696564ff27806f11e2ff3e910804d
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
powerio-0.10.0-cp39-abi3-macosx_10_12_x86_64.whl -
Subject digest:
fd0a2984d95ac6fbd6a1b16967041abb4c1791d48859cab7fe28d80ea0d562b7 - Sigstore transparency entry: 2645863826
- Sigstore integration time:
-
Permalink:
eigenergy/powerio@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/eigenergy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@e97b31db236f1d7620d30a87b1ed00960cd701bb -
Trigger Event:
release
-
Statement type: