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.0rc2.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.0rc2-py3-none-any.whl (68.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: r2x_core-0.1.0rc2.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.0rc2.tar.gz
Algorithm Hash digest
SHA256 136f208d5603475a57a5348fdf1ca34465469d1fba8cee6c94b768e56c5891f8
MD5 23452c0de555f9c3dc4f2591e902336f
BLAKE2b-256 9fb56b7d07fa52aa05e832f5b4ddea443c06d0365bf852b8962c4a2d40ee7677

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: r2x_core-0.1.0rc2-py3-none-any.whl
  • Upload date:
  • Size: 68.6 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.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 1f7fb2f98603670b1d04f73ba3611a691d22afad3392be73b804f3f2b160acc7
MD5 f759a0e8e48f8da72ab9a6021c539fe6
BLAKE2b-256 2a9564be97f412f6ec0182c0a36bf598d11fe093ec0f5ad7ed63b40c1c79fbad

See more details on using hashes here.

Provenance

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