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.1.0rc1.tar.gz (56.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.1.0rc1-py3-none-any.whl (68.5 kB view details)

Uploaded Python 3

File details

Details for the file r2x_core-0.1.0rc1.tar.gz.

File metadata

  • Download URL: r2x_core-0.1.0rc1.tar.gz
  • Upload date:
  • Size: 56.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.1.0rc1.tar.gz
Algorithm Hash digest
SHA256 2dc3a55e91f7c437bbfc358ebd156e8a5d80f78050be52f52625abf2a24f1e30
MD5 6aedeb03776a54dfe11535dc67dbe439
BLAKE2b-256 0f9cecab3df9851d8d9a4f6e02c4a424bc151043a2e0f33837abef30f487801b

See more details on using hashes here.

Provenance

The following attestation bundles were made for r2x_core-0.1.0rc1.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.1.0rc1-py3-none-any.whl.

File metadata

  • Download URL: r2x_core-0.1.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 68.5 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.1.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 64b2a25bcad300733ccc0c4954e88ecb598655a9654a55b34c1f7aa42894f1f5
MD5 98f0cb187ca625a0241223a90fcaf7ec
BLAKE2b-256 3baeb74bceeb55c7175ef54a24d92e729490b025255636c980b4d60f322b01a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for r2x_core-0.1.0rc1-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