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.9.tar.gz (57.0 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.9-py3-none-any.whl (68.0 kB view details)

Uploaded Python 3

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

Hashes for r2x_core-0.0.9.tar.gz
Algorithm Hash digest
SHA256 53e8024eac6c3bf109e9f6f0956693f2fab8fb9738d11d217f3643cd5c1938d1
MD5 3f5ecabb84789b07c41cdbb3d63dc170
BLAKE2b-256 5462d6f5a9c9a7fd7390f7a798896912164fcb617b9bd2cb2bb95932c17657ab

See more details on using hashes here.

Provenance

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

Hashes for r2x_core-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 0466b4f0d858a815a4bff7fdf4dd8b7862e1aef53701f6b1ce598d0b0188012c
MD5 e17e6d5a5ec61ee92204f1648a1c1045
BLAKE2b-256 7abd7ac922886f83d738174d7de7785a04f387b86763704fe7270fbe4b0e32d5

See more details on using hashes here.

Provenance

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