Extensible framework for building power system model translators with plugin architecture
Project description
r2x-core
Extensible framework for power system model translation
R2X Core is a model-agnostic framework for building power system model translators. It provides the core infrastructure, data models, plugin architecture, and APIs that enable translation between different power system modeling platforms like ReEDS, PLEXOS, SWITCH, Sienna, and more.
Features
- Plugin-based architecture with automatic discovery and registration
- Support for multiple file formats: CSV, HDF5, Parquet, JSON, and XML
- Standardized power system component models via infrasys
- Abstract base classes (
BaseParser,BaseExporter) for implementing model translators - Type-safe configuration management with Pydantic models
- Built-in data transformations, filters, and validations
- Flexible data store with automatic format detection
- System modifiers for applying transformations to power system models
Quick Start
pip install r2x-core
from r2x_core import PluginManager, BaseParser
# Register your model plugin
PluginManager.register_model_plugin(
name="my_model",
config=MyModelConfig,
parser=MyModelParser,
exporter=MyModelExporter,
)
# Use it
manager = PluginManager()
parser = manager.load_parser("my_model")
system = parser(config, data_store).build_system()
👉 See the full tutorial for a complete example.
Documentation
- Getting Started Tutorial - Step-by-step guide to building your first translator
- Plugin System Guide - Understanding the plugin architecture
- How-To Guides - Task-oriented guides for common workflows
- API Reference - Complete API documentation
Roadmap
If you're curious about what we're working on, check out the roadmap:
- Active issues: Issues that we are actively working on.
- Prioritized backlog: Issues we'll be working on next.
- Nice-to-have: Nice to have features or Issues to fix. Anyone can start working on (please let us know before you do).
- Ideas: Future work or ideas for R2X Core.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 r2x_core-0.0.9.tar.gz.
File metadata
- Download URL: r2x_core-0.0.9.tar.gz
- Upload date:
- Size: 57.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53e8024eac6c3bf109e9f6f0956693f2fab8fb9738d11d217f3643cd5c1938d1
|
|
| MD5 |
3f5ecabb84789b07c41cdbb3d63dc170
|
|
| BLAKE2b-256 |
5462d6f5a9c9a7fd7390f7a798896912164fcb617b9bd2cb2bb95932c17657ab
|
Provenance
The following attestation bundles were made for r2x_core-0.0.9.tar.gz:
Publisher:
release.yaml on NREL/r2x-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
r2x_core-0.0.9.tar.gz -
Subject digest:
53e8024eac6c3bf109e9f6f0956693f2fab8fb9738d11d217f3643cd5c1938d1 - Sigstore transparency entry: 609525870
- Sigstore integration time:
-
Permalink:
NREL/r2x-core@c9b34d2280afdee08387e982f7365e0802b4d147 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/NREL
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@c9b34d2280afdee08387e982f7365e0802b4d147 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file r2x_core-0.0.9-py3-none-any.whl.
File metadata
- Download URL: r2x_core-0.0.9-py3-none-any.whl
- Upload date:
- Size: 68.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0466b4f0d858a815a4bff7fdf4dd8b7862e1aef53701f6b1ce598d0b0188012c
|
|
| MD5 |
e17e6d5a5ec61ee92204f1648a1c1045
|
|
| BLAKE2b-256 |
7abd7ac922886f83d738174d7de7785a04f387b86763704fe7270fbe4b0e32d5
|
Provenance
The following attestation bundles were made for r2x_core-0.0.9-py3-none-any.whl:
Publisher:
release.yaml on NREL/r2x-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
r2x_core-0.0.9-py3-none-any.whl -
Subject digest:
0466b4f0d858a815a4bff7fdf4dd8b7862e1aef53701f6b1ce598d0b0188012c - Sigstore transparency entry: 609526051
- Sigstore integration time:
-
Permalink:
NREL/r2x-core@c9b34d2280afdee08387e982f7365e0802b4d147 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/NREL
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@c9b34d2280afdee08387e982f7365e0802b4d147 -
Trigger Event:
workflow_dispatch
-
Statement type: