Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
e89d3eb
feat: update max capacity with rating props for generators
mcllerena Apr 15, 2026
85103f7
fix: change rules file sienna regions to areas ref
mcllerena Apr 15, 2026
ba829e7
fix: remove acpf related properties from rules file
mcllerena Apr 15, 2026
ff533e6
fix: match gen categories correctly by thermal fuel and remove syn-co…
mcllerena Apr 15, 2026
3252973
fix: remove line/trf properties not used in the pcm
mcllerena Apr 15, 2026
c9f8b26
feat: add reference node logic for region-node membership
mcllerena Apr 15, 2026
f7c91dc
fix: update max capacity further to be equal to rating in default cases
mcllerena Apr 15, 2026
f915a73
fix: update storage memberships to exist only when pumped-hydro gens …
mcllerena Apr 16, 2026
d6a3ba8
feat: resolve head/tail hps generator associations for translation
mcllerena Apr 21, 2026
05d1cf5
fix: update reeds/sienna fuel type mapping
mcllerena Apr 21, 2026
8ad4a7f
fix: update reference node logic and turn off renewable dispatch gens…
mcllerena Apr 21, 2026
d1ece63
fix: re-add load zone objects for plexos zones in translation
mcllerena Apr 21, 2026
dbcfbb3
fix: implement updates on the storage head/tail to correctly translat…
mcllerena Apr 22, 2026
b91ec4b
feat: update pump hydro gens creation with reservoirs
mcllerena May 5, 2026
ccf1c2f
test: update test with recent update for EI refactoring
mcllerena May 7, 2026
1931e5c
test: increase testing coverage
mcllerena May 7, 2026
b86d9dc
fix: update storage head/tail references for pumped-hydro and hydrotu…
mcllerena May 7, 2026
16b7dac
fix: resolve conflict with dimension conversion
mcllerena May 7, 2026
a82a99e
test: fix tests issues on hydro pump storage references
mcllerena May 7, 2026
d9140b2
feat: first approach on converting hydro budget time series to weekly…
mcllerena May 7, 2026
4811bc5
test: increase tests coverage
mcllerena May 7, 2026
62d7a96
fix: optimize translation and increase test coverage
mcllerena May 22, 2026
1d55351
fix: create reference node region memberships
mcllerena May 22, 2026
491f318
fix: optimize runtime of translation
mcllerena May 22, 2026
2e0c19d
fix: avoid setting offline units based on only heat rate values
mcllerena May 22, 2026
7840af7
fix: avoid exporting duplicated reserve time series
mcllerena May 23, 2026
d07ee35
fix: resolve issue with offline generators
mcllerena May 23, 2026
6dd01c1
Revert "fix: resolve issue with offline generators"
mcllerena May 23, 2026
1a98723
fix: put hydro back online
mcllerena May 24, 2026
8e49726
fix: resolve generators logic for hydro and pumped-hydro categories
mcllerena May 24, 2026
17c03d6
fix: run formatter
mcllerena May 24, 2026
92f613a
Merge branch 'main' into ml/ei-refactor
mcllerena May 24, 2026
6e1bf99
fix: resolve time series issues and increase test coverage
mcllerena May 24, 2026
7e84a6f
fix: resolve prime mover type issues and formatting
mcllerena May 25, 2026
54d32fe
test: remove comments from tets on getters
mcllerena May 25, 2026
7699183
fix: update ramps issues
mcllerena May 25, 2026
c2c2727
fix: resolve circular for different python versions
mcllerena May 25, 2026
11984ac
test: resolve package information
mcllerena May 25, 2026
2fb7e4a
fix: resolve CI import cycle by removing local r2x-core source override
mcllerena May 25, 2026
f997b4b
fix: update conftest local references
mcllerena May 25, 2026
cd44431
fix: update approach on getting ramps
mcllerena May 25, 2026
40d8f6f
feat: resolve current issues with ramp logic and formatter
mcllerena May 27, 2026
4f1c6f9
fix: resolve issues with heat rate, fuel price and start cost properties
mcllerena May 27, 2026
050ae31
fix: upte heat rate exporting logic
mcllerena May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions conftest.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
"""Root conftest for R2X workspace.

Handles two concerns:
1. Loading fixture modules as pytest plugins for proper discovery.
2. Getter registry cleanup to avoid collisions between packages.
Handles getter registry cleanup to avoid collisions between packages.

r2x_core uses a global GETTER_REGISTRY dict. Multiple workspace packages
register getters with identical names (e.g., 'is_slack_bus', 'get_availability').
Expand All @@ -20,9 +18,7 @@
# ---------------------------------------------------------------------------
# Fixture plugins
# ---------------------------------------------------------------------------
# Fixture modules declared here are loaded as local pytest plugins, giving
# clean discovery without sys.path hacks or star imports in conftest files.
# The modules must be importable via pythonpath entries in pyproject.toml.
# Pytest 8.4+ requires pytest_plugins to be declared only in the root conftest.
pytest_plugins = [
"fixtures.configs",
"fixtures.context",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
ensure_generator_node_memberships,
ensure_head_storage_generator_membership,
ensure_interface_line_memberships,
ensure_pumped_hydro_storages_created,
ensure_reference_node_memberships,
ensure_region_node_memberships,
ensure_reserve_battery_memberships,
ensure_reserve_generator_memberships,
Expand All @@ -50,6 +52,7 @@
"sienna_to_plexos",
"REEDS_COMPONENT_SUBSTRINGS",
"ensure_region_node_memberships",
"ensure_reference_node_memberships",
"ensure_interface_line_memberships",
"ensure_generator_node_memberships",
"ensure_battery_node_memberships",
Expand All @@ -59,6 +62,7 @@
"ensure_transformer_node_memberships",
"ensure_head_storage_generator_membership",
"ensure_tail_storage_generator_membership",
"ensure_pumped_hydro_storages_created",
"membership_region_parent_node",
"membership_region_child_node",
"membership_reserve_child_generator",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,28 +56,74 @@
"prime_mover_types": {
"BA": "battery",
"BT": "geothermal",
"CA": "gas-cc",
"CC": "gas-cc",
"CE": "caes",
"CP": "csp",
"CS": "gas-cc",
"CT": "gas-cc",
"ES": "other",
"FC": "smr",
"FW": "other",
"GT": "gas-ct",
"HA": "hydnd",
"HB": "hydnd",
"HK": "hydnd",
"HY": "hyded",
"IC": "lfill-gas",
"HA": "hydro",
"HB": "hydro",
"HK": "hydro",
"HY": "hydro",
"PS": "pumped-hydro",
"OT": "other",
"ST": "coal",
"PVe": "upv",
"WT": "wind-ons",
"WS": "wind-ofs"
},
"reeds_thermal_mapping": {
"coal": [
"ANTHRACITE_COAL",
"BITUMINOUS_COAL",
"SUBBITUMINOUS_COAL",
"LIGNITE_COAL",
"COAL",
"REFINED_COAL",
"WASTE_COAL",
"SYNTHESIS_GAS_COAL"
],
"natural-gas": [
"NATURAL_GAS"
],
"o-g-s": [
"DISTILLATE_FUEL_OIL",
"RESIDUAL_FUEL_OIL",
"PETROLEUM_COKE",
"JET_FUEL",
"KEROSENE",
"PROPANE",
"WASTE_OIL",
"SYNTHESIS_GAS_PETROLEUM_COKE",
"OTHER_GAS",
"BLAST_FURNACE_GAS"
],
"biopower": [
"AG_BIOPRODUCT",
"AG_BYPRODUCT",
"MUNICIPAL_WASTE",
"OTHER_BIOMASS_SOLIDS",
"WOOD_WASTE_SOLIDS",
"OTHER_BIOMASS_LIQUIDS",
"SLUDGE_WASTE",
"BLACK_LIQUOR",
"WOOD_WASTE_LIQUIDS",
"TIREDERIVED_FUEL",
"WASTE_HEAT"
],
"lfill-gas": [
"LANDFILL_GAS",
"OTHER_BIOMASS_GAS"
],
"nuclear": [
"NUCLEAR"
],
"egs": [
"GEOTHERMAL"
],
"other": [
"OTHER"
]
},
"reeds_defaults": {
"syn-cond": {
"capacity_MW": 320.0,
Expand Down Expand Up @@ -173,6 +219,20 @@
"min_up_time": 7.0,
"start_cost_per_MW": 5.3
},
"coal": {
"capacity_MW": 302.0,
"forced_outage_rate": 0.0429,
"maintenance_rate": 0.12,
"max_capacity_MW": 856.0,
"max_ramp_up_percentage": 0.2,
"mean_time_to_repair": 55.0,
"min_capacity_MW": 50.0,
"min_down_time": 12.0,
"min_stable_level_percentage": 0.4,
"min_up_time": 24.0,
"start_cost_per_MW": 129.0,
"vom_cost": 4.5
},
"coal-ccs": {
"capacity_MW": 302.0,
"forced_outage_rate": 0.0429,
Expand Down Expand Up @@ -484,6 +544,20 @@
"min_up_time": 16.0,
"start_cost_per_MW": 0.0
},
"natural-gas": {
"capacity_MW": 320.0,
"forced_outage_rate": 0.0328,
"maintenance_rate": 0.06,
"max_capacity_MW": 944.0,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 48.0,
"min_capacity_MW": 10.0,
"min_down_time": 8.0,
"min_stable_level_percentage": 0.5,
"min_up_time": 6.0,
"start_cost_per_MW": 79.0,
"vom_cost": 4.2
},
"gas-cc": {
"capacity_MW": 320.0,
"forced_outage_rate": 0.0328,
Expand Down Expand Up @@ -742,168 +816,19 @@
"ramp_rate_down": 30.0,
"ramp_rate_up": 30.0
},
"hydd": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": null,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hyded": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": null,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hydend": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": 1.0,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hydnd": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": 1.0,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hydnpd": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": null,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hydnpnd": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": 1.0,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hydsd": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": null,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hydsn": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": 1.0,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hydud": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": null,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"hydro": {
"capacity_MW": 150.0,
"average_capacity_MW": 50.0,
"forced_outage_rate": 0.02,
"maintenance_rate": 0.01,
"mean_time_to_repair": 48,
"max_ramp_up_percentage": 0.8,
"min_energy": 0.0,
"min_power": 0.0,
"ramp_rate_down": 100.0,
"ramp_rate_up": 100.0,
"vom_cost": 3.2
},
"hydtrb": {
"average_capacity_MW": 50.0,
"forced_outage_rate": 0.02,
"maintenance_rate": 0.01,
"mean_time_to_repair": 48,
"min_energy": 0.0,
"min_power": 0.0,
"ramp_rate_down": 100.0,
"ramp_rate_up": 100.0,
"vom_cost": 3.2
},
"hydund": {
"capacity_MW": null,
"forced_outage_rate": null,
"maintenance_rate": null,
"max_capacity_MW": null,
"max_ramp_up_percentage": 0.05,
"mean_time_to_repair": 24.0,
"min_capacity_MW": null,
"min_down_time": null,
"min_stable_level_percentage": 1.0,
"min_up_time": null,
"start_cost_per_MW": null,
"vom_cost": 3.2
},
"lfill-gas": {
"capacity_MW": 20.0,
"forced_outage_rate": 0.0309,
Expand Down Expand Up @@ -1012,10 +937,12 @@
"start_cost_per_MW": 69.0
},
"pumped-hydro": {
"capacity_MW": 150.0,
"average_capacity_MW": 100.0,
"forced_outage_rate": 0.020,
"maintenance_rate": 0.01,
"mean_time_to_repair": 48,
"max_ramp_up_percentage": 0.8,
"min_energy": 0.0,
"min_power": 0.0,
"ramp_rate_down": 100.0,
Expand All @@ -1027,31 +954,26 @@
"maintenance_rate": 0.020,
"mean_time_to_repair": 24,
"min_energy": 0.0,
"min_power": 0.0,
"ramp_rate_down": 100.0,
"ramp_rate_up": 100.0
"min_power": 0.0
},
"wind-ofs": {
"average_capacity_MW": 5.0,
"forced_outage_rate": 0.03,
"maintenance_rate": 0.02,
"mean_time_to_repair": 48,
"min_energy": 0.0,
"min_power": 0.0,
"ramp_rate_down": 100.0,
"ramp_rate_up": 100.0
"min_power": 0.0
},
"wind-ons": {
"average_capacity_MW": 2.5,
"forced_outage_rate": 0.02,
"maintenance_rate": 0.01,
"mean_time_to_repair": 24,
"min_energy": 0.0,
"min_power": 0.0,
"ramp_rate_down": 100.0,
"ramp_rate_up": 100.0
"min_power": 0.0
},
"other": {
"capacity_MW": 100.0,
"forced_outage_rate": 0.0328,
"maintenance_rate": 0.06,
"max_ramp_up_percentage": 0.05,
Expand Down
Loading
Loading