Skip to main content

Extensible framework for building power system model translators with plugin architecture

Project description

r2x-core

Extensible framework for power system model translation

image image image CI codecov Ruff Documentation Docstring Coverage

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

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


Download files

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

Source Distribution

r2x_core-0.0.10.tar.gz (58.4 kB view details)

Uploaded Source

Built Distribution

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

r2x_core-0.0.10-py3-none-any.whl (68.8 kB view details)

Uploaded Python 3

File details

Details for the file r2x_core-0.0.10.tar.gz.

File metadata

  • Download URL: r2x_core-0.0.10.tar.gz
  • Upload date:
  • Size: 58.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for r2x_core-0.0.10.tar.gz
Algorithm Hash digest
SHA256 d16df9fb7ff299c90fc61fcef167072830787609ad9b71f0f443b6f9bc09790c
MD5 2b6be3efc4c994c4e4cc4007c8c5645f
BLAKE2b-256 fb9e9d8973e701c383ef9284d68ee0a87366355fab224828954d106ef5dbca6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for r2x_core-0.0.10.tar.gz:

Publisher: release.yaml on NREL/r2x-core

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

File details

Details for the file r2x_core-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: r2x_core-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 68.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for r2x_core-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 f1d7139d2ab2f808b98bcf0433521a70d55a5241f81dc7851353fd0fedced55b
MD5 a05e3386dba76dd03dce1154156def00
BLAKE2b-256 a2bbb9eb5e8753ae16e6024bbbf3f7ab3e06f675293b5a82c2ab5407c9988695

See more details on using hashes here.

Provenance

The following attestation bundles were made for r2x_core-0.0.10-py3-none-any.whl:

Publisher: release.yaml on NREL/r2x-core

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page