Create Translation Rules¶

Rules describe how to convert components from one model format to another.

Basic Rule¶

>>> from r2x_core import Rule
>>> rule = Rule(
...     source_type="Bus",
...     target_type="Node",
...     version=1,
...     field_map={"name": "name", "kv_rating": "voltage_kv"}
... )
>>> rule.source_type
'Bus'
>>> rule.version
1

With Default Values¶

Provide defaults for fields that may be missing in source components:

>>> from r2x_core import Rule
>>> rule = Rule(
...     source_type="Generator",
...     target_type="ThermalUnit",
...     version=1,
...     field_map={"name": "name"},
...     defaults={"zone": "unspecified"}
... )
>>> rule.defaults
{'zone': 'unspecified'}

From Records¶

Load multiple rules from a list of dictionaries:

>>> from r2x_core import Rule
>>> records = [
...     {"source_type": "Bus", "target_type": "Node", "version": 1},
...     {"source_type": "Generator", "target_type": "Unit", "version": 1}
... ]
>>> rules = Rule.from_records(records)
>>> len(rules)
2

See Also¶