GridPath 2026.2.0__tar.gz → 2026.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (836) hide show
  1. {gridpath-2026.2.0 → gridpath-2026.4.0}/GridPath.egg-info/PKG-INFO +2 -2
  2. {gridpath-2026.2.0 → gridpath-2026.4.0}/GridPath.egg-info/SOURCES.txt +30 -0
  3. gridpath-2026.4.0/GridPath.egg-info/entry_points.txt +62 -0
  4. {gridpath-2026.2.0 → gridpath-2026.4.0}/PKG-INFO +2 -2
  5. {gridpath-2026.2.0 → gridpath-2026.4.0}/README.md +1 -1
  6. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/load_raw_data.py +59 -15
  7. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/manual_adjustments.py +25 -4
  8. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/availability/eia860_to_project_availability_input_csvs.py +33 -1
  9. gridpath-2026.4.0/data_toolkit/project/availability/outages/create_availability_iteration_input_csvs.py +811 -0
  10. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/availability/weather_derates/create_monte_carlo_gen_weather_derate_input_csvs.py +62 -5
  11. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/availability/weather_derates/create_sync_gen_weather_derate_input_csvs.py +61 -57
  12. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/capacity_specified/eia860_to_project_specified_capacity_input_csvs.py +40 -1
  13. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/create_monte_carlo_gen_input_csvs_common.py +32 -8
  14. gridpath-2026.4.0/data_toolkit/project/create_sync_gen_input_csvs_common.py +218 -0
  15. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/fixed_cost/eia860_to_project_fixed_cost_input_csvs.py +39 -1
  16. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/load_zones/eia860_to_project_load_zone_input_csvs.py +26 -1
  17. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/eia860_to_project_opchar_input_csvs.py +71 -2
  18. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/hydro/create_hydro_iteration_input_csvs.py +150 -6
  19. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/var_profiles/create_monte_carlo_var_gen_input_csvs.py +60 -4
  20. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/var_profiles/create_sync_var_gen_input_csvs.py +53 -72
  21. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/portfolios/eia860_to_project_portfolio_input_csvs.py +53 -33
  22. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/project_data_filters_common.py +1 -1
  23. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/raw_data/pudl/pudl_to_gridpath_raw_data.py +12 -10
  24. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/run_data_toolkit.py +5 -4
  25. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/system/create_monte_carlo_load_input_csvs.py +100 -14
  26. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/system/create_sync_load_input_csvs.py +36 -2
  27. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/system/eia930_load_zone_input_csvs.py +7 -0
  28. gridpath-2026.4.0/data_toolkit/temporal/create_monte_carlo_weather_draw_profiles.py +801 -0
  29. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/temporal/create_monte_carlo_weather_draws.py +134 -225
  30. gridpath-2026.4.0/data_toolkit/temporal/create_temporal_iteration_csv.py +322 -0
  31. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/common_functions.py +11 -2
  32. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/create_database.py +13 -5
  33. gridpath-2026.4.0/db/csvs_test_examples/create_test_database.py +69 -0
  34. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/db_schema.sql +759 -274
  35. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/utilities/port_csvs_to_db.py +4 -1
  36. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/utilities/scenario.py +11 -12
  37. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/db_interface.py +2 -89
  38. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/import_export_rules.py +38 -36
  39. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/module_list.py +2 -1
  40. gridpath-2026.4.0/gridpath/auxiliary/scenario_chars.py +776 -0
  41. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/validations.py +1 -1
  42. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/common_functions.py +61 -1
  43. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/load_zones.py +11 -2
  44. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/get_scenario_inputs.py +64 -24
  45. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/import_scenario_results.py +73 -28
  46. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/max_npv.py +0 -13
  47. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/aggregate_load_balance_penalties.py +41 -16
  48. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_policy_target_violation_penalties.py +17 -1
  49. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/process_results.py +1 -0
  50. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/availability/availability_types/exogenous.py +80 -1
  51. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity.py +16 -77
  52. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/dr_new.py +0 -57
  53. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/energy_new_lin.py +0 -53
  54. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/fuel_prod_new.py +0 -76
  55. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/gen_new_bin.py +0 -53
  56. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/gen_new_lin.py +0 -53
  57. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/gen_ret_bin.py +0 -53
  58. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/gen_ret_lin.py +0 -53
  59. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/stor_new_bin.py +0 -57
  60. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/stor_new_lin.py +0 -57
  61. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/__init__.py +4 -1
  62. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/carbon_tax.py +1 -0
  63. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/costs.py +3 -3
  64. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/common_functions.py +124 -209
  65. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/energy_load_following.py +14 -0
  66. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/energy_profile.py +3 -5
  67. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_var.py +31 -9
  68. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_var_must_take.py +31 -8
  69. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_var_stor_hyb.py +25 -1
  70. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/load_component_shift.py +1 -0
  71. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/opchar_param_requirements.csv +2 -1
  72. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/power.py +0 -126
  73. gridpath-2026.4.0/gridpath/project/operations/power_output_groups.py +420 -0
  74. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/reserve_limits_by_op_type.py +22 -11
  75. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/policy/compliance_types/__init__.py +9 -0
  76. gridpath-2026.4.0/gridpath/project/policy/compliance_types/sod_exceedance.py +208 -0
  77. gridpath-2026.4.0/gridpath/project/policy/compliance_types/sod_flat_block.py +32 -0
  78. gridpath-2026.4.0/gridpath/project/policy/compliance_types/sod_stor.py +226 -0
  79. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/policy/policy_contribution.py +214 -62
  80. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/summary_results.py +46 -12
  81. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/run_end_to_end.py +10 -1
  82. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/run_scenario.py +317 -239
  83. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/markets/market_participation.py +0 -1
  84. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/energy_targets/horizon_energy_target_balance.py +0 -100
  85. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/energy_targets/period_energy_target_balance.py +0 -99
  86. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/fuel_burn_limits/fuel_burn_limit_balance.py +0 -1
  87. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/generic_policy/__init__.py +36 -4
  88. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/generic_policy/aggregate_project_policy_contributions.py +25 -0
  89. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/generic_policy/consolidate_results.py +25 -16
  90. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/generic_policy/generic_policy_requirements.py +224 -85
  91. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/generic_policy/policy_target_balance.py +52 -1
  92. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/prm/aggregate_project_simple_prm_contribution.py +0 -1
  93. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/prm/capacity_contribution_transfers.py +0 -13
  94. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/temporal/investment/periods.py +12 -7
  95. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/temporal/operations/horizons.py +0 -18
  96. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/temporal/operations/timepoints.py +6 -6
  97. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/capacity_types/tx_new_lin.py +0 -1
  98. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/carbon_emissions.py +0 -1
  99. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/hurdle_costs.py +0 -1
  100. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/hurdle_costs_by_timepoint.py +0 -1
  101. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/transmission_target_contributions.py +0 -1
  102. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/validate_inputs.py +37 -30
  103. {gridpath-2026.2.0 → gridpath-2026.4.0}/setup.py +58 -0
  104. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_geography_generic_policy.py +21 -3
  105. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/availability/availability_types/test_exogenous.py +21 -0
  106. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_var.py +10 -0
  107. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_var_must_take.py +9 -0
  108. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_var_stor_hyb.py +8 -0
  109. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/op_type_dependent/test_frequency_response.py +2 -2
  110. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/op_type_dependent/test_lf_reserves_down.py +2 -2
  111. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/op_type_dependent/test_lf_reserves_up.py +2 -2
  112. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/op_type_dependent/test_regulation_down.py +1 -1
  113. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/op_type_dependent/test_regulation_up.py +1 -1
  114. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/op_type_dependent/test_spinning_reserves.py +2 -2
  115. gridpath-2026.4.0/tests/project/operations/test_power_output_groups.py +170 -0
  116. gridpath-2026.4.0/tests/test_data_toolkit/project/availability/outages/test_create_availability_iteration_input_csvs.py +86 -0
  117. gridpath-2026.4.0/tests/test_data_toolkit/project/availability/weather_derates/test_create_monte_carlo_gen_weather_derate_input_csvs.py +127 -0
  118. gridpath-2026.4.0/tests/test_data_toolkit/project/availability/weather_derates/test_create_sync_gen_weather_derate_input_csvs.py +85 -0
  119. gridpath-2026.4.0/tests/test_data_toolkit/project/opchar/hydro/test_create_hydro_iteration_input_csvs.py +115 -0
  120. gridpath-2026.4.0/tests/test_data_toolkit/project/opchar/var_profiles/test_create_monte_carlo_var_gen_input_csvs.py +127 -0
  121. gridpath-2026.4.0/tests/test_data_toolkit/project/opchar/var_profiles/test_create_sync_var_gen_input_csvs.py +85 -0
  122. gridpath-2026.4.0/tests/test_data_toolkit/system/__init__.py +0 -0
  123. gridpath-2026.4.0/tests/test_data_toolkit/system/test_create_monte_carlo_load_input_csvs.py +137 -0
  124. gridpath-2026.4.0/tests/test_data_toolkit/system/test_create_sync_load_input_csvs.py +93 -0
  125. gridpath-2026.4.0/tests/test_data_toolkit/temporal/__init__.py +0 -0
  126. gridpath-2026.4.0/tests/test_data_toolkit/temporal/test_create_monte_carlo_weather_draw_profiles.py +97 -0
  127. gridpath-2026.4.0/tests/test_data_toolkit/temporal/test_create_monte_carlo_weather_draws.py +79 -0
  128. gridpath-2026.4.0/tests/test_data_toolkit/temporal/test_create_temporal_scenarios.py +73 -0
  129. gridpath-2026.4.0/tests/test_data_toolkit/test_create_database.py +59 -0
  130. gridpath-2026.4.0/tests/test_data_toolkit/test_load_raw_data.py +70 -0
  131. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/test_examples.py +67 -5
  132. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/test_run_data_toolkit.py +2 -0
  133. gridpath-2026.4.0/tests/transmission/__init__.py +0 -0
  134. gridpath-2026.4.0/tests/transmission/availability/__init__.py +0 -0
  135. gridpath-2026.4.0/tests/transmission/availability/availability_types/__init__.py +0 -0
  136. gridpath-2026.4.0/tests/transmission/capacity/__init__.py +0 -0
  137. gridpath-2026.4.0/tests/transmission/capacity/capacity_types/__init__.py +0 -0
  138. gridpath-2026.4.0/tests/transmission/operations/__init__.py +0 -0
  139. gridpath-2026.4.0/tests/transmission/operations/operational_types/__init__.py +0 -0
  140. gridpath-2026.4.0/viz/__init__.py +0 -0
  141. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/dispatch_plot.py +88 -23
  142. gridpath-2026.2.0/GridPath.egg-info/entry_points.txt +0 -32
  143. gridpath-2026.2.0/data_toolkit/project/availability/outages/create_availability_iteration_input_csvs.py +0 -477
  144. gridpath-2026.2.0/data_toolkit/project/create_sync_gen_input_csvs_common.py +0 -91
  145. gridpath-2026.2.0/data_toolkit/temporal/create_temporal_iteration_csv.py +0 -213
  146. gridpath-2026.2.0/gridpath/auxiliary/scenario_chars.py +0 -688
  147. {gridpath-2026.2.0 → gridpath-2026.4.0}/GridPath.egg-info/dependency_links.txt +0 -0
  148. {gridpath-2026.2.0 → gridpath-2026.4.0}/GridPath.egg-info/requires.txt +0 -0
  149. {gridpath-2026.2.0 → gridpath-2026.4.0}/GridPath.egg-info/top_level.txt +0 -0
  150. {gridpath-2026.2.0 → gridpath-2026.4.0}/LICENSE.md +0 -0
  151. {gridpath-2026.2.0 → gridpath-2026.4.0}/MANIFEST.in +0 -0
  152. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/__init__.py +0 -0
  153. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/common_methods.py +0 -0
  154. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/fuels/__init__.py +0 -0
  155. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/fuels/eiaaeo_fuel_price_input_csvs.py +0 -0
  156. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/fuels/eiaaeo_to_fuel_chars_input_csvs.py +0 -0
  157. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/__init__.py +0 -0
  158. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/availability/__init__.py +0 -0
  159. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/availability/outages/__init__.py +0 -0
  160. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/availability/weather_derates/__init__.py +0 -0
  161. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/capacity_specified/__init__.py +0 -0
  162. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/common_methods.py +0 -0
  163. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/fixed_cost/__init__.py +0 -0
  164. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/load_zones/__init__.py +0 -0
  165. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/__init__.py +0 -0
  166. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/fuels/__init__.py +0 -0
  167. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/fuels/eia860_to_project_fuel_input_csvs.py +0 -0
  168. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/heat_rates/__init__.py +0 -0
  169. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/heat_rates/eia860_to_project_heat_rate_input_csvs.py +0 -0
  170. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/hydro/__init__.py +0 -0
  171. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/opchar/var_profiles/__init__.py +0 -0
  172. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/project/portfolios/__init__.py +0 -0
  173. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/raw_data/__init__.py +0 -0
  174. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/raw_data/common_functions.py +0 -0
  175. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/raw_data/get_pcm_demo_user_defined_inputs.py +0 -0
  176. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/raw_data/pudl/__init__.py +0 -0
  177. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/raw_data/pudl/download_data_from_pudl.py +0 -0
  178. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/raw_data/ra_toolkit/__init__.py +0 -0
  179. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/raw_data/ra_toolkit/get_ra_toolkit_data.py +0 -0
  180. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/system/__init__.py +0 -0
  181. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/system/common_methods.py +0 -0
  182. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/temporal/__init__.py +0 -0
  183. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/temporal/create_temporal_scenarios.py +0 -0
  184. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/__init__.py +0 -0
  185. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/availability/__init__.py +0 -0
  186. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/availability/eia930_to_transmission_availability_input_csvs.py +0 -0
  187. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/capacity_specified/__init__.py +0 -0
  188. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/capacity_specified/eia930_to_transmission_specified_capacity_input_csvs.py +0 -0
  189. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/load_zones/__init__.py +0 -0
  190. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/load_zones/eia930_to_transmission_load_zone_input_csvs.py +0 -0
  191. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/opchar/__init__.py +0 -0
  192. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/opchar/eia930_to_transmission_opchar_input_csvs.py +0 -0
  193. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/portfolios/__init__.py +0 -0
  194. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/portfolios/eia930_to_transmission_portfolio_input_csvs.py +0 -0
  195. {gridpath-2026.2.0 → gridpath-2026.4.0}/data_toolkit/transmission/transmission_data_filters_common.py +0 -0
  196. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/__init__.py +0 -0
  197. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/csvs_test_examples/__init__.py +0 -0
  198. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/csvs_test_examples/project/__init__.py +0 -0
  199. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_availability_types.csv +0 -0
  200. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_capacity_and_operational_type_invalid_combos.csv +0 -0
  201. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_capacity_types.csv +0 -0
  202. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_feature_subscenarios.csv +0 -0
  203. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_features.csv +0 -0
  204. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_horizon_boundary_types.csv +0 -0
  205. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_months.csv +0 -0
  206. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_operational_types.csv +0 -0
  207. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_prm_types.csv +0 -0
  208. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_reserve_types.csv +0 -0
  209. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_run_status_types.csv +0 -0
  210. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_tx_availability_types.csv +0 -0
  211. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_tx_capacity_and_tx_operational_type_invalid_combos.csv +0 -0
  212. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_tx_capacity_types.csv +0 -0
  213. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_tx_operational_types.csv +0 -0
  214. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_units.csv +0 -0
  215. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/mod_validation_status_types.csv +0 -0
  216. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/ui_scenario_detail_table_metadata.csv +0 -0
  217. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/ui_scenario_detail_table_row_metadata.csv +0 -0
  218. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/ui_scenario_results_plot_metadata.csv +0 -0
  219. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/ui_scenario_results_table_metadata.csv +0 -0
  220. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/data/viz_technologies.csv +0 -0
  221. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/doc.py +0 -0
  222. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/utilities/__init__.py +0 -0
  223. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/utilities/add_column_to_csv.py +0 -0
  224. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/utilities/common_functions.py +0 -0
  225. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/utilities/create_project_files.py +0 -0
  226. {gridpath-2026.2.0 → gridpath-2026.4.0}/db/utilities/custom_functions.py +0 -0
  227. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/__init__.py +0 -0
  228. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/__init__.py +0 -0
  229. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/auxiliary.py +0 -0
  230. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/dynamic_components.py +0 -0
  231. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/plugins/__init__.py +0 -0
  232. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/plugins/common_functions.py +0 -0
  233. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/plugins/cplex_solve.py +0 -0
  234. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/auxiliary/plugins/gurobi_solve.py +0 -0
  235. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/__init__.py +0 -0
  236. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/carbon_cap_zones.py +0 -0
  237. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/carbon_credits_zones.py +0 -0
  238. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/carbon_tax_zones.py +0 -0
  239. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/energy_target_zones.py +0 -0
  240. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/frequency_response_balancing_areas.py +0 -0
  241. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/fuel_burn_limit_balancing_areas.py +0 -0
  242. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/generic_policy.py +0 -0
  243. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/inertia_reserves_balancing_areas.py +0 -0
  244. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/instantaneous_penetration_zones.py +0 -0
  245. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/load_following_down_balancing_areas.py +0 -0
  246. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/load_following_up_balancing_areas.py +0 -0
  247. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/local_capacity_zones.py +0 -0
  248. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/markets.py +0 -0
  249. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/performance_standard_zones.py +0 -0
  250. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/prm_zones.py +0 -0
  251. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/regulation_down_balancing_areas.py +0 -0
  252. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/regulation_up_balancing_areas.py +0 -0
  253. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/spinning_reserves_balancing_areas.py +0 -0
  254. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/transmission_target_zones.py +0 -0
  255. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/geography/water_network.py +0 -0
  256. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/__init__.py +0 -0
  257. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/project/__init__.py +0 -0
  258. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/project/aggregate_capacity_costs.py +0 -0
  259. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/project/aggregate_operational_costs.py +0 -0
  260. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/project/aggregate_operational_tuning_costs.py +0 -0
  261. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/project/aggregate_prm_group_costs.py +0 -0
  262. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/__init__.py +0 -0
  263. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/aggregate_market_revenue_and_costs.py +0 -0
  264. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/__init__.py +0 -0
  265. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_carbon_cap_violation_penalties.py +0 -0
  266. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_carbon_credit_sales_and_purchases.py +0 -0
  267. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_carbon_tax_costs.py +0 -0
  268. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_fuel_burn_limit_violation_penalties.py +0 -0
  269. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_horizon_energy_target_violation_penalties.py +0 -0
  270. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_instantaneous_penetration_violation_penalties.py +0 -0
  271. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_performance_standard_violation_penalties.py +0 -0
  272. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_period_energy_target_violation_penalties.py +0 -0
  273. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_subsidies.py +0 -0
  274. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/policy/aggregate_transmission_target_violation_penalties.py +0 -0
  275. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reliability/__init__.py +0 -0
  276. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reliability/local_capacity/__init__.py +0 -0
  277. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reliability/local_capacity/aggregate_local_capacity_violation_penalties.py +0 -0
  278. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reliability/prm/__init__.py +0 -0
  279. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reliability/prm/aggregate_capacity_transfer_costs.py +0 -0
  280. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reliability/prm/aggregate_prm_violation_penalties.py +0 -0
  281. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/__init__.py +0 -0
  282. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/aggregate_reserve_violation_penalties.py +0 -0
  283. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/frequency_response.py +0 -0
  284. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/inertia_reserves.py +0 -0
  285. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/lf_reserves_down.py +0 -0
  286. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/lf_reserves_up.py +0 -0
  287. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/regulation_down.py +0 -0
  288. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/regulation_up.py +0 -0
  289. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/reserve_violation_penalties/spinning_reserves.py +0 -0
  290. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/water/__init__.py +0 -0
  291. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/water/aggregate_flow_violation_penalty_costs.py +0 -0
  292. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/system/water/aggregate_reservoir_violation_penalty_costs.py +0 -0
  293. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/transmission/__init__.py +0 -0
  294. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/transmission/aggregate_capacity_costs.py +0 -0
  295. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/transmission/aggregate_hurdle_costs.py +0 -0
  296. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/transmission/aggregate_tx_tuning_costs.py +0 -0
  297. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/objective/transmission/carbon_imports_tuning_costs.py +0 -0
  298. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/__init__.py +0 -0
  299. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/availability/__init__.py +0 -0
  300. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/availability/availability.py +0 -0
  301. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/availability/availability_types/__init__.py +0 -0
  302. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/availability/availability_types/binary.py +0 -0
  303. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/availability/availability_types/continuous.py +0 -0
  304. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/__init__.py +0 -0
  305. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_groups.py +0 -0
  306. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/__init__.py +0 -0
  307. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/common_methods.py +0 -0
  308. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/energy_spec.py +0 -0
  309. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/fuel_prod_spec.py +0 -0
  310. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/gen_spec.py +0 -0
  311. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/gen_stor_hyb_spec.py +0 -0
  312. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/capacity_types/stor_spec.py +0 -0
  313. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/common_functions.py +0 -0
  314. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/costs.py +0 -0
  315. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/potential.py +0 -0
  316. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/capacity/relative_capacity.py +0 -0
  317. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/common_functions.py +0 -0
  318. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/consolidate_results.py +0 -0
  319. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/fuels.py +0 -0
  320. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/cap_factor_limits.py +0 -0
  321. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/carbon_cap.py +0 -0
  322. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/carbon_credits.py +0 -0
  323. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/carbon_emissions.py +0 -0
  324. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/common_functions.py +0 -0
  325. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/cycle_select.py +0 -0
  326. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/energy_target_contributions.py +0 -0
  327. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/fix_commitment.py +0 -0
  328. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/fuel_burn.py +0 -0
  329. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/instantaneous_penetration_contributions.py +0 -0
  330. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/__init__.py +0 -0
  331. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/dispatchable_load.py +0 -0
  332. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/dr.py +0 -0
  333. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/energy_hrz_shaping.py +0 -0
  334. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/energy_slice_hrz_shaping.py +0 -0
  335. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/flex_load.py +0 -0
  336. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/fuel_prod.py +0 -0
  337. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_always_on.py +0 -0
  338. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_commit_bin.py +0 -0
  339. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_commit_cap.py +0 -0
  340. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_commit_lin.py +0 -0
  341. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_commit_unit_common.py +0 -0
  342. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_hydro.py +0 -0
  343. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_hydro_must_take.py +0 -0
  344. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_hydro_water.py +0 -0
  345. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_must_run.py +0 -0
  346. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_simple.py +0 -0
  347. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_simple_energy_limited.py +0 -0
  348. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/gen_simple_no_load_balance_power.py +0 -0
  349. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/load_component_modifier.py +0 -0
  350. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/operational_types/stor.py +0 -0
  351. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/performance_standard.py +0 -0
  352. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/__init__.py +0 -0
  353. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/frequency_response.py +0 -0
  354. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/inertia_reserves.py +0 -0
  355. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/lf_reserves_down.py +0 -0
  356. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/lf_reserves_up.py +0 -0
  357. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/__init__.py +0 -0
  358. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/frequency_response.py +0 -0
  359. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/inertia_reserves.py +0 -0
  360. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/lf_reserves_down.py +0 -0
  361. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/lf_reserves_up.py +0 -0
  362. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/regulation_down.py +0 -0
  363. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/regulation_up.py +0 -0
  364. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/op_type_dependent/spinning_reserves.py +0 -0
  365. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/regulation_down.py +0 -0
  366. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/regulation_up.py +0 -0
  367. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/reserve_provision.py +0 -0
  368. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/spinning_reserves.py +0 -0
  369. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/reserves/subhourly_energy_adjustment.py +0 -0
  370. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/supplemental_firing.py +0 -0
  371. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/operations/tuning_costs.py +0 -0
  372. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/policy/__init__.py +0 -0
  373. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/policy/compliance_types/f_output.py +0 -0
  374. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/policy/compliance_types/flat_horizon.py +0 -0
  375. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/policy/compliance_types/stor_losses.py +0 -0
  376. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/__init__.py +0 -0
  377. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/local_capacity/__init__.py +0 -0
  378. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/local_capacity/local_capacity_contribution.py +0 -0
  379. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/__init__.py +0 -0
  380. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/common_functions.py +0 -0
  381. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/elcc_surface.py +0 -0
  382. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/group_costs.py +0 -0
  383. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/prm_simple.py +0 -0
  384. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/prm_types/__init__.py +0 -0
  385. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/prm_types/energy_only_allowed.py +0 -0
  386. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/prm_types/fully_deliverable.py +0 -0
  387. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/project/reliability/prm/prm_types/fully_deliverable_energy_limited.py +0 -0
  388. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/run_scenario_parallel.py +0 -0
  389. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/__init__.py +0 -0
  390. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/__init__.py +0 -0
  391. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/aggregate_load_modifier_power.py +0 -0
  392. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/aggregate_market_participation.py +0 -0
  393. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/aggregate_project_power.py +0 -0
  394. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/aggregate_transmission_power.py +0 -0
  395. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/consolidate_results.py +0 -0
  396. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/load_balance.py +0 -0
  397. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/load_following.py +0 -0
  398. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/load_balance/static_load_requirement.py +0 -0
  399. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/markets/__init__.py +0 -0
  400. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/markets/fix_market_participation.py +0 -0
  401. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/markets/prices.py +0 -0
  402. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/markets/volume.py +0 -0
  403. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/__init__.py +0 -0
  404. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_cap/__init__.py +0 -0
  405. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_cap/aggregate_project_carbon_credits.py +0 -0
  406. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_cap/aggregate_project_carbon_emissions.py +0 -0
  407. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_cap/aggregate_transmission_carbon_emissions.py +0 -0
  408. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_cap/carbon_balance.py +0 -0
  409. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_cap/carbon_cap.py +0 -0
  410. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_cap/consolidate_results.py +0 -0
  411. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_credits/__init__.py +0 -0
  412. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_credits/aggregate_project_carbon_credits.py +0 -0
  413. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_credits/carbon_credits_balance.py +0 -0
  414. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_credits/consolidate_results.py +0 -0
  415. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_credits/sell_and_buy_credits.py +0 -0
  416. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_credits/sell_credits.py +0 -0
  417. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_tax/__init__.py +0 -0
  418. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_tax/aggregate_project_carbon_credits.py +0 -0
  419. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_tax/aggregate_project_carbon_emissions.py +0 -0
  420. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_tax/carbon_tax.py +0 -0
  421. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_tax/carbon_tax_costs.py +0 -0
  422. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/carbon_tax/consolidate_results.py +0 -0
  423. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/energy_targets/__init__.py +0 -0
  424. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/energy_targets/aggregate_horizon_energy_target_contributions.py +0 -0
  425. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/energy_targets/aggregate_period_energy_target_contributions.py +0 -0
  426. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/energy_targets/consolidate_results.py +0 -0
  427. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/energy_targets/horizon_energy_target.py +0 -0
  428. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/energy_targets/period_energy_target.py +0 -0
  429. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/fuel_burn_limits/__init__.py +0 -0
  430. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/fuel_burn_limits/aggregate_project_fuel_burn.py +0 -0
  431. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/fuel_burn_limits/consolidate_results.py +0 -0
  432. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/fuel_burn_limits/fuel_burn_limits.py +0 -0
  433. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/instantaneous_penetration/__init__.py +0 -0
  434. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/instantaneous_penetration/instantaneous_penetration_aggregation.py +0 -0
  435. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/instantaneous_penetration/instantaneous_penetration_balance.py +0 -0
  436. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/instantaneous_penetration/instantaneous_penetration_requirements.py +0 -0
  437. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/performance_standard/__init__.py +0 -0
  438. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/performance_standard/aggregate_project_carbon_credits.py +0 -0
  439. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/performance_standard/aggregate_project_performance_standard.py +0 -0
  440. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/performance_standard/consolidate_results.py +0 -0
  441. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/performance_standard/performance_standard.py +0 -0
  442. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/performance_standard/performance_standard_balance.py +0 -0
  443. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/subsidies.py +0 -0
  444. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/transmission_targets/__init__.py +0 -0
  445. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/transmission_targets/aggregate_transmission_target_contributions.py +0 -0
  446. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/transmission_targets/consolidate_results.py +0 -0
  447. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/transmission_targets/transmission_target.py +0 -0
  448. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/policy/transmission_targets/transmission_target_balance.py +0 -0
  449. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/__init__.py +0 -0
  450. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/local_capacity/__init__.py +0 -0
  451. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/local_capacity/aggregate_local_capacity_contribution.py +0 -0
  452. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/local_capacity/consolidate_results.py +0 -0
  453. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/local_capacity/local_capacity_balance.py +0 -0
  454. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/local_capacity/local_capacity_requirement.py +0 -0
  455. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/prm/__init__.py +0 -0
  456. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/prm/consolidate_results.py +0 -0
  457. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/prm/elcc_surface.py +0 -0
  458. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/prm/prm_balance.py +0 -0
  459. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reliability/prm/prm_requirement.py +0 -0
  460. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/__init__.py +0 -0
  461. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/__init__.py +0 -0
  462. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/frequency_response.py +0 -0
  463. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/inertia_reserves.py +0 -0
  464. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/lf_reserves_down.py +0 -0
  465. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/lf_reserves_up.py +0 -0
  466. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/regulation_down.py +0 -0
  467. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/regulation_up.py +0 -0
  468. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/reserve_aggregation.py +0 -0
  469. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/aggregation/spinning_reserves.py +0 -0
  470. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/__init__.py +0 -0
  471. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/frequency_response.py +0 -0
  472. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/inertia_reserves.py +0 -0
  473. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/lf_reserves_down.py +0 -0
  474. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/lf_reserves_up.py +0 -0
  475. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/regulation_down.py +0 -0
  476. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/regulation_up.py +0 -0
  477. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/reserve_balance.py +0 -0
  478. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/balance/spinning_reserves.py +0 -0
  479. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/__init__.py +0 -0
  480. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/frequency_response.py +0 -0
  481. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/inertia_reserves.py +0 -0
  482. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/lf_reserves_down.py +0 -0
  483. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/lf_reserves_up.py +0 -0
  484. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/regulation_down.py +0 -0
  485. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/regulation_up.py +0 -0
  486. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/reserve_requirements.py +0 -0
  487. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/reserves/requirement/spinning_reserves.py +0 -0
  488. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/__init__.py +0 -0
  489. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/elevation_types/__init__.py +0 -0
  490. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/elevation_types/constant.py +0 -0
  491. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/elevation_types/endogenous.py +0 -0
  492. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/elevation_types/exogenous.py +0 -0
  493. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/powerhouses.py +0 -0
  494. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/reservoirs.py +0 -0
  495. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/water_flows.py +0 -0
  496. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/water_node_balance.py +0 -0
  497. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/water_node_inflows_outflows.py +0 -0
  498. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/water_nodes.py +0 -0
  499. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/system/water/water_system_params.py +0 -0
  500. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/temporal/__init__.py +0 -0
  501. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/temporal/finalize.py +0 -0
  502. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/temporal/investment/__init__.py +0 -0
  503. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/temporal/investment/superperiods.py +0 -0
  504. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/temporal/operations/__init__.py +0 -0
  505. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/__init__.py +0 -0
  506. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/availability/__init__.py +0 -0
  507. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/availability/availability.py +0 -0
  508. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/availability/availability_types/__init__.py +0 -0
  509. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/availability/availability_types/exogenous.py +0 -0
  510. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/availability/availability_types/exogenous_monthly.py +0 -0
  511. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/__init__.py +0 -0
  512. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/capacity.py +0 -0
  513. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/capacity_groups.py +0 -0
  514. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/capacity_types/__init__.py +0 -0
  515. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/capacity_types/tx_spec.py +0 -0
  516. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/common_functions.py +0 -0
  517. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/consolidate_results.py +0 -0
  518. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/capacity/costs.py +0 -0
  519. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/__init__.py +0 -0
  520. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/common_functions.py +0 -0
  521. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/consolidate_results.py +0 -0
  522. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/operational_types/__init__.py +0 -0
  523. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/operational_types/tx_dcopf.py +0 -0
  524. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/operational_types/tx_simple.py +0 -0
  525. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/operational_types/tx_simple_binary.py +0 -0
  526. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/operations.py +0 -0
  527. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/simultaneous_flow_limits.py +0 -0
  528. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/transmission_flow_limits.py +0 -0
  529. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/operations/tx_tuning_costs.py +0 -0
  530. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/reliability/__init__.py +0 -0
  531. {gridpath-2026.2.0 → gridpath-2026.4.0}/gridpath/transmission/reliability/capacity_transfer_links.py +0 -0
  532. {gridpath-2026.2.0 → gridpath-2026.4.0}/setup.cfg +0 -0
  533. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/__init__.py +0 -0
  534. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/auxiliary/__init__.py +0 -0
  535. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/auxiliary/test_auxiliary.py +0 -0
  536. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/auxiliary/test_validations.py +0 -0
  537. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/common_functions.py +0 -0
  538. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/__init__.py +0 -0
  539. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_carbon_cap_zones.py +0 -0
  540. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_carbon_credits_zones.py +0 -0
  541. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_carbon_tax_zones.py +0 -0
  542. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_energy_target_zones.py +0 -0
  543. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_frequency_response_balancing_areas.py +0 -0
  544. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_fuel_burn_limit_balancing_areas.py +0 -0
  545. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_inertia_reserves_balancing_areas.py +0 -0
  546. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_instantaneous_penetration_zones.py +0 -0
  547. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_load_following_down_balancing_areas.py +0 -0
  548. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_load_following_up_balancing_areas.py +0 -0
  549. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_load_zones.py +0 -0
  550. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_local_capacity_zones.py +0 -0
  551. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_markets.py +0 -0
  552. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_performance_standard_zones.py +0 -0
  553. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_prm_zones.py +0 -0
  554. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_regulation_down_balancing_areas.py +0 -0
  555. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_regulation_up_balancing_areas.py +0 -0
  556. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_spinning_reserves_balancing_areas.py +0 -0
  557. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_transmission_target_zones.py +0 -0
  558. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/geography/test_water_network.py +0 -0
  559. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/__init__.py +0 -0
  560. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/project/__init__.py +0 -0
  561. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/project/test_aggregate_capacity_costs.py +0 -0
  562. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/project/test_aggregate_operational_costs.py +0 -0
  563. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/project/test_aggregate_operational_tuning_costs.py +0 -0
  564. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/project/test_aggregate_prm_group_costs.py +0 -0
  565. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/__init__.py +0 -0
  566. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/__init__.py +0 -0
  567. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_carbon_cap_violation_penalties.py +0 -0
  568. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_carbon_credit_sales_and_purchases.py +0 -0
  569. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_carbon_tax_costs.py +0 -0
  570. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_fuel_burn_limit_violation_penalties.py +0 -0
  571. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_horizon_energy_target_violation_penalties.py +0 -0
  572. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_instantaneous_penetration_violation_penalties.py +0 -0
  573. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_performance_standard_violation_penalties.py +0 -0
  574. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_period_energy_target_violation_penalties.py +0 -0
  575. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_policy_target_violation_penalties.py +0 -0
  576. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_subsidies.py +0 -0
  577. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/policy/test_aggregate_transmission_target_violation_penalties.py +0 -0
  578. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/reserve_violation_penalties/__init__.py +0 -0
  579. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/reserve_violation_penalties/test_frequency_response.py +0 -0
  580. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/reserve_violation_penalties/test_inertia_reserves.py +0 -0
  581. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/reserve_violation_penalties/test_lf_reserves_down.py +0 -0
  582. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/reserve_violation_penalties/test_lf_reserves_up.py +0 -0
  583. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/reserve_violation_penalties/test_regulation_down.py +0 -0
  584. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/reserve_violation_penalties/test_regulation_up.py +0 -0
  585. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/reserve_violation_penalties/test_spinning_reserves.py +0 -0
  586. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/test_aggregate_load_balance_penalties.py +0 -0
  587. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/system/test_aggregate_market_revenue_and_costs.py +0 -0
  588. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/test_max_npv.py +0 -0
  589. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/transmission/__init__.py +0 -0
  590. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/transmission/test_aggregate_capacity_costs.py +0 -0
  591. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/transmission/test_aggregate_hurdle_costs.py +0 -0
  592. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/transmission/test_aggregate_tx_tuning_costs.py +0 -0
  593. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/objective/transmission/test_carbon_imports_tuning_costs.py +0 -0
  594. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/__init__.py +0 -0
  595. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/availability/__init__.py +0 -0
  596. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/availability/availability_types/__init__.py +0 -0
  597. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/availability/availability_types/common_functions.py +0 -0
  598. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/availability/availability_types/test_binary.py +0 -0
  599. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/availability/availability_types/test_continuous.py +0 -0
  600. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/availability/test_availability.py +0 -0
  601. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/__init__.py +0 -0
  602. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/__init__.py +0 -0
  603. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_common_methods.py +0 -0
  604. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_dr_new.py +0 -0
  605. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_energy_new_lin.py +0 -0
  606. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_energy_spec.py +0 -0
  607. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_fuel_prod_new.py +0 -0
  608. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_fuel_prod_spec.py +0 -0
  609. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_gen_new_bin.py +0 -0
  610. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_gen_new_lin.py +0 -0
  611. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_gen_ret_bin.py +0 -0
  612. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_gen_ret_lin.py +0 -0
  613. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_gen_spec.py +0 -0
  614. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_gen_stor_hyb_spec.py +0 -0
  615. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_stor_new_bin.py +0 -0
  616. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_stor_new_lin.py +0 -0
  617. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/capacity_types/test_stor_spec.py +0 -0
  618. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/test_capacity.py +0 -0
  619. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/test_capacity_groups.py +0 -0
  620. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/test_costs.py +0 -0
  621. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/test_potentials.py +0 -0
  622. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/capacity/test_relative_capacity.py +0 -0
  623. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/__init__.py +0 -0
  624. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/common_functions.py +0 -0
  625. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/__init__.py +0 -0
  626. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_common_functions.py +0 -0
  627. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_dispatchable_load.py +0 -0
  628. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_dr.py +0 -0
  629. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_energy_hrz_shaping.py +0 -0
  630. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_energy_load_following.py +0 -0
  631. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_energy_profile.py +0 -0
  632. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_energy_slice_hrz_shaping.py +0 -0
  633. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_flex_load.py +0 -0
  634. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_fuel_prod.py +0 -0
  635. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_always_on.py +0 -0
  636. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_commit_bin.py +0 -0
  637. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_commit_cap.py +0 -0
  638. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_commit_lin.py +0 -0
  639. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_hydro.py +0 -0
  640. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_hydro_must_take.py +0 -0
  641. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_hydro_water.py +0 -0
  642. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_must_run.py +0 -0
  643. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_simple.py +0 -0
  644. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_gen_simple_no_load_balance_power.py +0 -0
  645. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_init.py +0 -0
  646. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_load_component_modifier.py +0 -0
  647. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_load_component_shift.py +0 -0
  648. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/operational_types/test_stor.py +0 -0
  649. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/__init__.py +0 -0
  650. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/op_type_dependent/__init__.py +0 -0
  651. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/op_type_dependent/test_inertia_reserves.py +0 -0
  652. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/test_frequency_response.py +0 -0
  653. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/test_inertia_reserves.py +0 -0
  654. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/test_lf_reserves_down.py +0 -0
  655. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/test_lf_reserves_up.py +0 -0
  656. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/test_regulation_down.py +0 -0
  657. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/test_regulation_up.py +0 -0
  658. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/reserves/test_spinning_reserves.py +0 -0
  659. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_cap_factor_limits.py +0 -0
  660. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_carbon_cap.py +0 -0
  661. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_carbon_credits.py +0 -0
  662. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_carbon_emissions.py +0 -0
  663. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_carbon_tax.py +0 -0
  664. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_costs.py +0 -0
  665. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_cycle_select.py +0 -0
  666. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_energy_target_contributions.py +0 -0
  667. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_fix_commitment.py +0 -0
  668. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_fuel_burn.py +0 -0
  669. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_init.py +0 -0
  670. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_instantaneous_penetration_contributions.py +0 -0
  671. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_performance_standard.py +0 -0
  672. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_power.py +0 -0
  673. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_supplemental_firing.py +0 -0
  674. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/operations/test_tuning_costs.py +0 -0
  675. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/__init__.py +0 -0
  676. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/local_capacity/__init__.py +0 -0
  677. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/local_capacity/test_init.py +0 -0
  678. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/local_capacity/test_local_capacity_contribution.py +0 -0
  679. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/__init__.py +0 -0
  680. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/prm_types/__init__.py +0 -0
  681. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/prm_types/test_energy_only_allowed.py +0 -0
  682. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/prm_types/test_fully_deliverable.py +0 -0
  683. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/prm_types/test_fully_deliverable_energy_limited.py +0 -0
  684. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/prm_types/test_init.py +0 -0
  685. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/test_elcc_surface.py +0 -0
  686. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/test_group_costs.py +0 -0
  687. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/test_init.py +0 -0
  688. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/reliability/prm/test_prm_simple.py +0 -0
  689. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/test_fuels.py +0 -0
  690. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/project/test_init.py +0 -0
  691. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/__init__.py +0 -0
  692. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/load_balance/__init__.py +0 -0
  693. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/load_balance/test_aggregate_market_participation.py +0 -0
  694. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/load_balance/test_aggregate_project_power.py +0 -0
  695. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/load_balance/test_aggregate_transmission_power.py +0 -0
  696. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/load_balance/test_load_balance.py +0 -0
  697. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/load_balance/test_static_load_requirement.py +0 -0
  698. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/markets/__init__.py +0 -0
  699. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/markets/test_market_participation.py +0 -0
  700. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/markets/test_prices.py +0 -0
  701. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/markets/test_volume.py +0 -0
  702. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/__init__.py +0 -0
  703. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_cap/__init__.py +0 -0
  704. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_cap/test_aggregate_project_carbon_credits.py +0 -0
  705. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_cap/test_aggregate_project_carbon_emissions.py +0 -0
  706. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_cap/test_aggregate_transmission_carbon_emissions.py +0 -0
  707. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_cap/test_carbon_balance.py +0 -0
  708. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_cap/test_carbon_cap.py +0 -0
  709. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_credits/__init__.py +0 -0
  710. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_credits/test_aggregate_project_carbon_credits.py +0 -0
  711. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_credits/test_carbon_credits_balance.py +0 -0
  712. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_credits/test_sell_and_buy_credits.py +0 -0
  713. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_credits/test_sell_credits.py +0 -0
  714. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_tax/__init__.py +0 -0
  715. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_tax/test_aggregate_project_carbon_credits.py +0 -0
  716. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_tax/test_aggregate_project_carbon_emissions.py +0 -0
  717. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_tax/test_carbon_tax.py +0 -0
  718. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/carbon_tax/test_carbon_tax_costs.py +0 -0
  719. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/energy_targets/__init__.py +0 -0
  720. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/energy_targets/test_aggregate_horizon_energy_target_contributions.py +0 -0
  721. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/energy_targets/test_aggregate_period_energy_target_contributions.py +0 -0
  722. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/energy_targets/test_horizon_energy_target.py +0 -0
  723. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/energy_targets/test_period_energy_target.py +0 -0
  724. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/energy_targets/test_period_energy_target_balance.py +0 -0
  725. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/fuel_burn_limits/__init__.py +0 -0
  726. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/fuel_burn_limits/test_aggregate_project_fuel_burn.py +0 -0
  727. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/fuel_burn_limits/test_fuel_burn_limit_balance.py +0 -0
  728. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/fuel_burn_limits/test_fuel_burn_limits.py +0 -0
  729. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/instantaneous_penetration/__init__.py +0 -0
  730. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/instantaneous_penetration/test_instantaneous_penetration_aggregation.py +0 -0
  731. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/instantaneous_penetration/test_instantaneous_penetration_balance.py +0 -0
  732. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/instantaneous_penetration/test_instantaneous_penetration_requirements.py +0 -0
  733. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/test_subsidies.py +0 -0
  734. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/transmission_targets/__init__.py +0 -0
  735. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/transmission_targets/test_aggregate_transmission_target_contributions.py +0 -0
  736. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/transmission_targets/test_transmission_target.py +0 -0
  737. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/policy/transmission_targets/test_transmission_target_balance.py +0 -0
  738. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/__init__.py +0 -0
  739. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/local_capacity/__init__.py +0 -0
  740. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/local_capacity/test_aggregate_local_capacity_contribution.py +0 -0
  741. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/local_capacity/test_local_capacity_balance.py +0 -0
  742. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/local_capacity/test_local_capacity_requirement.py +0 -0
  743. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/prm/__init__.py +0 -0
  744. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/prm/test_aggregate_project_simple_prm_contribution.py +0 -0
  745. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/prm/test_capacity_contribution_transfers.py +0 -0
  746. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/prm/test_elcc_surface.py +0 -0
  747. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/prm/test_prm_balance.py +0 -0
  748. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reliability/prm/test_prm_requirement.py +0 -0
  749. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/__init__.py +0 -0
  750. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/aggregation/__init__.py +0 -0
  751. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/aggregation/test_frequency_response.py +0 -0
  752. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/aggregation/test_inertia_reserves.py +0 -0
  753. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/aggregation/test_lf_reserves_down.py +0 -0
  754. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/aggregation/test_lf_reserves_up.py +0 -0
  755. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/aggregation/test_regulation_down.py +0 -0
  756. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/aggregation/test_regulation_up.py +0 -0
  757. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/aggregation/test_spinning_reserves.py +0 -0
  758. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/balance/__init__.py +0 -0
  759. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/balance/test_frequency_response.py +0 -0
  760. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/balance/test_inertia_reserves.py +0 -0
  761. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/balance/test_lf_reserves_down.py +0 -0
  762. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/balance/test_lf_reserves_up.py +0 -0
  763. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/balance/test_regulation_down.py +0 -0
  764. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/balance/test_regulation_up.py +0 -0
  765. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/balance/test_spinning_reserves.py +0 -0
  766. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/requirement/__init__.py +0 -0
  767. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/requirement/test_frequency_response.py +0 -0
  768. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/requirement/test_inertia_reserves.py +0 -0
  769. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/requirement/test_lf_reserves_down.py +0 -0
  770. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/requirement/test_lf_reserves_up.py +0 -0
  771. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/requirement/test_regulation_down.py +0 -0
  772. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/requirement/test_regulation_up.py +0 -0
  773. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/reserves/requirement/test_spinning_reserves.py +0 -0
  774. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/__init__.py +0 -0
  775. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/elevation_types/__init__.py +0 -0
  776. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/elevation_types/test_constant.py +0 -0
  777. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/elevation_types/test_endogenous.py +0 -0
  778. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/elevation_types/test_exogenous.py +0 -0
  779. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/test_powerhouses.py +0 -0
  780. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/test_water_flows.py +0 -0
  781. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/test_water_node_balance.py +0 -0
  782. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/test_water_nodes.py +0 -0
  783. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/test_water_reservoirs.py +0 -0
  784. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/system/water/test_water_system_params.py +0 -0
  785. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/temporal/__init__.py +0 -0
  786. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/temporal/investment/__init__.py +0 -0
  787. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/temporal/investment/test_periods.py +0 -0
  788. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/temporal/investment/test_superperiods.py +0 -0
  789. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/temporal/operations/__init__.py +0 -0
  790. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/temporal/operations/test_horizons.py +0 -0
  791. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/temporal/operations/test_timepoints.py +0 -0
  792. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/test_create_database.py +0 -0
  793. {gridpath-2026.2.0/tests/transmission → gridpath-2026.4.0/tests/test_data_toolkit}/__init__.py +0 -0
  794. {gridpath-2026.2.0/tests/transmission/availability → gridpath-2026.4.0/tests/test_data_toolkit/project}/__init__.py +0 -0
  795. {gridpath-2026.2.0/tests/transmission/availability/availability_types → gridpath-2026.4.0/tests/test_data_toolkit/project/availability}/__init__.py +0 -0
  796. {gridpath-2026.2.0/tests/transmission/capacity → gridpath-2026.4.0/tests/test_data_toolkit/project/availability/outages}/__init__.py +0 -0
  797. {gridpath-2026.2.0/tests/transmission/capacity/capacity_types → gridpath-2026.4.0/tests/test_data_toolkit/project/availability/weather_derates}/__init__.py +0 -0
  798. {gridpath-2026.2.0/tests/transmission/operations → gridpath-2026.4.0/tests/test_data_toolkit/project/opchar}/__init__.py +0 -0
  799. {gridpath-2026.2.0/tests/transmission/operations/operational_types → gridpath-2026.4.0/tests/test_data_toolkit/project/opchar/hydro}/__init__.py +0 -0
  800. {gridpath-2026.2.0/viz → gridpath-2026.4.0/tests/test_data_toolkit/project/opchar/var_profiles}/__init__.py +0 -0
  801. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/test_run_scenario_parallel.py +0 -0
  802. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/test_viz.py +0 -0
  803. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/availability/availability_types/test_exogenous.py +0 -0
  804. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/availability/availability_types/test_exogenous_monthly.py +0 -0
  805. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/availability/test_availability.py +0 -0
  806. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/capacity/capacity_types/test_tx_new_lin.py +0 -0
  807. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/capacity/capacity_types/test_tx_spec.py +0 -0
  808. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/capacity/test_capacity.py +0 -0
  809. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/capacity/test_capacity_groups.py +0 -0
  810. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/capacity/test_costs.py +0 -0
  811. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/operational_types/test_tx_dcopf.py +0 -0
  812. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/operational_types/test_tx_simple.py +0 -0
  813. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/operational_types/test_tx_simple_binary.py +0 -0
  814. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/test_carbon_emissions.py +0 -0
  815. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/test_hurdle_costs.py +0 -0
  816. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/test_hurdle_costs_by_timepoint.py +0 -0
  817. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/test_operations.py +0 -0
  818. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/test_simultaneous_flow_limits.py +0 -0
  819. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/test_transmission_flow_limits.py +0 -0
  820. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/test_transmission_target_contributions.py +0 -0
  821. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/operations/test_tx_tuning_costs.py +0 -0
  822. {gridpath-2026.2.0 → gridpath-2026.4.0}/tests/transmission/test_init.py +0 -0
  823. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/capacity_factor_plot.py +0 -0
  824. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/capacity_new_plot.py +0 -0
  825. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/capacity_retired_plot.py +0 -0
  826. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/capacity_total_loadzone_comparison_plot.py +0 -0
  827. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/capacity_total_plot.py +0 -0
  828. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/capacity_total_scenario_comparison_plot.py +0 -0
  829. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/carbon_plot.py +0 -0
  830. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/common_functions.py +0 -0
  831. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/cost_plot.py +0 -0
  832. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/curtailment_hydro_heatmap_plot.py +0 -0
  833. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/curtailment_variable_heatmap_plot.py +0 -0
  834. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/energy_plot.py +0 -0
  835. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/energy_target_plot.py +0 -0
  836. {gridpath-2026.2.0 → gridpath-2026.4.0}/viz/project_operations_plot.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GridPath
3
- Version: 2026.2.0
3
+ Version: 2026.4.0
4
4
  Summary: A versatile simulation and optimization platform for power-system planning and operations.
5
5
  Home-page: https://www.gridpath.io
6
6
  Maintainer: Blue Marble Analytics LLC
@@ -65,7 +65,7 @@ Dynamic: summary
65
65
  [![Coverage Status](https://coveralls.io/repos/github/blue-marble/gridpath/badge.svg?branch=main)](https://coveralls.io/github/blue-marble/gridpath?branch=main)
66
66
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
67
67
  [![Lint Black](https://github.com/blue-marble/gridpath/actions/workflows/black.yml/badge.svg?branch=main)](https://github.com/blue-marble/gridpath/actions/workflows/black.yml)
68
- [![DOI](https://zenodo.org/badge/65574330.svg)](https://zenodo.org/badge/latestdoi/65574330)
68
+ [![DOI](https://zenodo.org/badge/65574330.svg)](https://doi.org/10.5281/zenodo.5822994)
69
69
 
70
70
  # Welcome to GridPath
71
71
 
@@ -61,6 +61,7 @@ data_toolkit/system/create_monte_carlo_load_input_csvs.py
61
61
  data_toolkit/system/create_sync_load_input_csvs.py
62
62
  data_toolkit/system/eia930_load_zone_input_csvs.py
63
63
  data_toolkit/temporal/__init__.py
64
+ data_toolkit/temporal/create_monte_carlo_weather_draw_profiles.py
64
65
  data_toolkit/temporal/create_monte_carlo_weather_draws.py
65
66
  data_toolkit/temporal/create_temporal_iteration_csv.py
66
67
  data_toolkit/temporal/create_temporal_scenarios.py
@@ -82,6 +83,7 @@ db/create_database.py
82
83
  db/db_schema.sql
83
84
  db/doc.py
84
85
  db/csvs_test_examples/__init__.py
86
+ db/csvs_test_examples/create_test_database.py
85
87
  db/csvs_test_examples/project/__init__.py
86
88
  db/data/mod_availability_types.csv
87
89
  db/data/mod_capacity_and_operational_type_invalid_combos.csv
@@ -249,6 +251,7 @@ gridpath/project/operations/fuel_burn.py
249
251
  gridpath/project/operations/instantaneous_penetration_contributions.py
250
252
  gridpath/project/operations/performance_standard.py
251
253
  gridpath/project/operations/power.py
254
+ gridpath/project/operations/power_output_groups.py
252
255
  gridpath/project/operations/supplemental_firing.py
253
256
  gridpath/project/operations/tuning_costs.py
254
257
  gridpath/project/operations/operational_types/__init__.py
@@ -304,6 +307,9 @@ gridpath/project/policy/policy_contribution.py
304
307
  gridpath/project/policy/compliance_types/__init__.py
305
308
  gridpath/project/policy/compliance_types/f_output.py
306
309
  gridpath/project/policy/compliance_types/flat_horizon.py
310
+ gridpath/project/policy/compliance_types/sod_exceedance.py
311
+ gridpath/project/policy/compliance_types/sod_flat_block.py
312
+ gridpath/project/policy/compliance_types/sod_stor.py
307
313
  gridpath/project/policy/compliance_types/stor_losses.py
308
314
  gridpath/project/reliability/__init__.py
309
315
  gridpath/project/reliability/local_capacity/__init__.py
@@ -594,6 +600,7 @@ tests/project/operations/test_init.py
594
600
  tests/project/operations/test_instantaneous_penetration_contributions.py
595
601
  tests/project/operations/test_performance_standard.py
596
602
  tests/project/operations/test_power.py
603
+ tests/project/operations/test_power_output_groups.py
597
604
  tests/project/operations/test_supplemental_firing.py
598
605
  tests/project/operations/test_tuning_costs.py
599
606
  tests/project/operations/operational_types/__init__.py
@@ -754,6 +761,29 @@ tests/temporal/investment/test_superperiods.py
754
761
  tests/temporal/operations/__init__.py
755
762
  tests/temporal/operations/test_horizons.py
756
763
  tests/temporal/operations/test_timepoints.py
764
+ tests/test_data_toolkit/__init__.py
765
+ tests/test_data_toolkit/test_create_database.py
766
+ tests/test_data_toolkit/test_load_raw_data.py
767
+ tests/test_data_toolkit/project/__init__.py
768
+ tests/test_data_toolkit/project/availability/__init__.py
769
+ tests/test_data_toolkit/project/availability/outages/__init__.py
770
+ tests/test_data_toolkit/project/availability/outages/test_create_availability_iteration_input_csvs.py
771
+ tests/test_data_toolkit/project/availability/weather_derates/__init__.py
772
+ tests/test_data_toolkit/project/availability/weather_derates/test_create_monte_carlo_gen_weather_derate_input_csvs.py
773
+ tests/test_data_toolkit/project/availability/weather_derates/test_create_sync_gen_weather_derate_input_csvs.py
774
+ tests/test_data_toolkit/project/opchar/__init__.py
775
+ tests/test_data_toolkit/project/opchar/hydro/__init__.py
776
+ tests/test_data_toolkit/project/opchar/hydro/test_create_hydro_iteration_input_csvs.py
777
+ tests/test_data_toolkit/project/opchar/var_profiles/__init__.py
778
+ tests/test_data_toolkit/project/opchar/var_profiles/test_create_monte_carlo_var_gen_input_csvs.py
779
+ tests/test_data_toolkit/project/opchar/var_profiles/test_create_sync_var_gen_input_csvs.py
780
+ tests/test_data_toolkit/system/__init__.py
781
+ tests/test_data_toolkit/system/test_create_monte_carlo_load_input_csvs.py
782
+ tests/test_data_toolkit/system/test_create_sync_load_input_csvs.py
783
+ tests/test_data_toolkit/temporal/__init__.py
784
+ tests/test_data_toolkit/temporal/test_create_monte_carlo_weather_draw_profiles.py
785
+ tests/test_data_toolkit/temporal/test_create_monte_carlo_weather_draws.py
786
+ tests/test_data_toolkit/temporal/test_create_temporal_scenarios.py
757
787
  tests/transmission/__init__.py
758
788
  tests/transmission/test_init.py
759
789
  tests/transmission/availability/__init__.py
@@ -0,0 +1,62 @@
1
+ [console_scripts]
2
+ gridpath_create_availability_iteration_input_csvs = data_toolkit.project.availability.outages.create_availability_iteration_input_csvs:main
3
+ gridpath_create_database = db.create_database:main
4
+ gridpath_create_hydro_iteration_input_csvs = data_toolkit.project.opchar.hydro.create_hydro_iteration_input_csvs:main
5
+ gridpath_create_monte_carlo_gen_weather_derate_input_csvs = data_toolkit.project.availability.weather_derates.create_monte_carlo_gen_weather_derate_input_csvs:main
6
+ gridpath_create_monte_carlo_load_input_csvs = data_toolkit.system.create_monte_carlo_load_input_csvs:main
7
+ gridpath_create_monte_carlo_var_gen_input_csvs = data_toolkit.project.opchar.var_profiles.create_monte_carlo_var_gen_input_csvs:main
8
+ gridpath_create_monte_carlo_weather_draw_profiles = data_toolkit.temporal.create_monte_carlo_weather_draw_profiles:main
9
+ gridpath_create_monte_carlo_weather_draws = data_toolkit.temporal.create_monte_carlo_weather_draws:main
10
+ gridpath_create_sync_gen_weather_derate_input_csvs = data_toolkit.project.availability.weather_derates.create_sync_gen_weather_derate_input_csvs:main
11
+ gridpath_create_sync_load_input_csvs = data_toolkit.system.create_sync_load_input_csvs:main
12
+ gridpath_create_sync_var_gen_input_csvs = data_toolkit.project.opchar.var_profiles.create_sync_var_gen_input_csvs:main
13
+ gridpath_create_temporal_iteration_csv = data_toolkit.temporal.create_temporal_iteration_csv:main
14
+ gridpath_create_temporal_scenarios = data_toolkit.temporal.create_temporal_scenarios:main
15
+ gridpath_eia860_to_project_availability_input_csvs = data_toolkit.project.availability.eia860_to_project_availability_input_csvs:main
16
+ gridpath_eia860_to_project_fixed_cost_input_csvs = data_toolkit.project.fixed_cost.eia860_to_project_fixed_cost_input_csvs:main
17
+ gridpath_eia860_to_project_fuel_input_csvs = data_toolkit.project.opchar.fuels.eia860_to_project_fuel_input_csvs:main
18
+ gridpath_eia860_to_project_heat_rate_input_csvs = data_toolkit.project.opchar.heat_rates.eia860_to_project_heat_rate_input_csvs:main
19
+ gridpath_eia860_to_project_load_zone_input_csvs = data_toolkit.project.load_zones.eia860_to_project_load_zone_input_csvs:main
20
+ gridpath_eia860_to_project_opchar_input_csvs = data_toolkit.project.opchar.eia860_to_project_opchar_input_csvs:main
21
+ gridpath_eia860_to_project_portfolio_input_csvs = data_toolkit.project.portfolios.eia860_to_project_portfolio_input_csvs:main
22
+ gridpath_eia860_to_project_specified_capacity_input_csvs = data_toolkit.project.capacity_specified.eia860_to_project_specified_capacity_input_csvs:main
23
+ gridpath_eia930_load_zone_input_csvs = data_toolkit.system.eia930_load_zone_input_csvs:main
24
+ gridpath_eia930_to_transmission_availability_input_csvs = data_toolkit.transmission.availability.eia930_to_transmission_availability_input_csvs:main
25
+ gridpath_eia930_to_transmission_load_zone_input_csvs = data_toolkit.transmission.load_zones.eia930_to_transmission_load_zone_input_csvs:main
26
+ gridpath_eia930_to_transmission_opchar_input_csvs = data_toolkit.transmission.opchar.eia930_to_transmission_opchar_input_csvs:main
27
+ gridpath_eia930_to_transmission_portfolio_input_csvs = data_toolkit.transmission.portfolios.eia930_to_transmission_portfolio_input_csvs:main
28
+ gridpath_eia930_to_transmission_specified_capacity_input_csvs = data_toolkit.transmission.capacity_specified.eia930_to_transmission_specified_capacity_input_csvs:main
29
+ gridpath_eiaaeo_fuel_price_input_csvs = data_toolkit.fuels.eiaaeo_fuel_price_input_csvs:main
30
+ gridpath_eiaaeo_to_fuel_chars_input_csvs = data_toolkit.fuels.eiaaeo_to_fuel_chars_input_csvs:main
31
+ gridpath_get_inputs = gridpath.get_scenario_inputs:main
32
+ gridpath_get_pcm_demo_inputs = data_toolkit.raw_data.get_pcm_demo_user_defined_inputs:main
33
+ gridpath_get_pudl_data = data_toolkit.raw_data.pudl.download_data_from_pudl:main
34
+ gridpath_get_ra_toolkit_data_raw = data_toolkit.raw_data.ra_toolkit.get_ra_toolkit_data:main
35
+ gridpath_import_results = gridpath.import_scenario_results:main
36
+ gridpath_load_csvs = db.utilities.port_csvs_to_db:main
37
+ gridpath_load_raw_data = data_toolkit.load_raw_data:main
38
+ gridpath_load_scenarios = db.utilities.scenario:main
39
+ gridpath_manual_adjustments = data_toolkit.manual_adjustments:main
40
+ gridpath_process_results = gridpath.process_results:main
41
+ gridpath_pudl_to_gridpath_raw = data_toolkit.raw_data.pudl.pudl_to_gridpath_raw_data:main
42
+ gridpath_run = gridpath.run_scenario:main
43
+ gridpath_run_data_toolkit = data_toolkit.run_data_toolkit:main
44
+ gridpath_run_e2e = gridpath.run_end_to_end:main
45
+ gridpath_run_parallel = gridpath.run_scenario_parallel:main
46
+ gridpath_run_queue_manager = ui.server.run_queue_manager:main
47
+ gridpath_run_server = ui.server.run_server:main
48
+ gridpath_validate = gridpath.validate_inputs:main
49
+ gridpath_viz_capacity_factor_plot = viz.capacity_factor_plot:main
50
+ gridpath_viz_capacity_new_plot = viz.capacity_new_plot:main
51
+ gridpath_viz_capacity_retired_plot = viz.capacity_retired_plot:main
52
+ gridpath_viz_capacity_total_loadzone_comparison_plot = viz.capacity_total_loadzone_comparison_plot:main
53
+ gridpath_viz_capacity_total_plot = viz.capacity_total_plot:main
54
+ gridpath_viz_capacity_total_scenario_comparison_plot = viz.capacity_total_scenario_comparison_plot:main
55
+ gridpath_viz_carbon_plot = viz.carbon_plot:main
56
+ gridpath_viz_cost_plot = viz.cost_plot:main
57
+ gridpath_viz_curtailment_hydro_heatmap_plot = viz.curtailment_hydro_heatmap_plot:main
58
+ gridpath_viz_curtailment_variable_heatmap_plot = viz.curtailment_variable_heatmap_plot:main
59
+ gridpath_viz_dispatch_plot = viz.dispatch_plot:main
60
+ gridpath_viz_energy_plot = viz.energy_plot:main
61
+ gridpath_viz_energy_target_plot = viz.energy_target_plot:main
62
+ gridpath_viz_project_operations_plot = viz.project_operations_plot:main
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GridPath
3
- Version: 2026.2.0
3
+ Version: 2026.4.0
4
4
  Summary: A versatile simulation and optimization platform for power-system planning and operations.
5
5
  Home-page: https://www.gridpath.io
6
6
  Maintainer: Blue Marble Analytics LLC
@@ -65,7 +65,7 @@ Dynamic: summary
65
65
  [![Coverage Status](https://coveralls.io/repos/github/blue-marble/gridpath/badge.svg?branch=main)](https://coveralls.io/github/blue-marble/gridpath?branch=main)
66
66
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
67
67
  [![Lint Black](https://github.com/blue-marble/gridpath/actions/workflows/black.yml/badge.svg?branch=main)](https://github.com/blue-marble/gridpath/actions/workflows/black.yml)
68
- [![DOI](https://zenodo.org/badge/65574330.svg)](https://zenodo.org/badge/latestdoi/65574330)
68
+ [![DOI](https://zenodo.org/badge/65574330.svg)](https://doi.org/10.5281/zenodo.5822994)
69
69
 
70
70
  # Welcome to GridPath
71
71
 
@@ -3,7 +3,7 @@
3
3
  [![Coverage Status](https://coveralls.io/repos/github/blue-marble/gridpath/badge.svg?branch=main)](https://coveralls.io/github/blue-marble/gridpath?branch=main)
4
4
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
5
5
  [![Lint Black](https://github.com/blue-marble/gridpath/actions/workflows/black.yml/badge.svg?branch=main)](https://github.com/blue-marble/gridpath/actions/workflows/black.yml)
6
- [![DOI](https://zenodo.org/badge/65574330.svg)](https://zenodo.org/badge/latestdoi/65574330)
6
+ [![DOI](https://zenodo.org/badge/65574330.svg)](https://doi.org/10.5281/zenodo.5822994)
7
7
 
8
8
  # Welcome to GridPath
9
9
 
@@ -15,14 +15,53 @@
15
15
  """
16
16
  Load data into the GridPath raw data database. See the documentation of each
17
17
  GridPath Data Toolkit module for data prerequisites. Use the
18
- files_to_import.csv file to tell GridPath which CSV files should be loaded
18
+ ``files_to_import.csv`` file to tell GridPath which CSV files should be loaded
19
19
  into which database table.
20
20
 
21
+ ==================
22
+ What this step does
23
+ ==================
24
+
25
+ This module is a generic bulk loader for raw CSV data into the GridPath
26
+ database. It reads a file named ``files_to_import.csv`` located in the
27
+ directory given by ``--csv_location``. Each row of that file describes one
28
+ CSV file: an import flag (whether the file should be loaded), the CSV
29
+ filename (relative to ``--csv_location``), and the database table the file
30
+ should be loaded into.
31
+
32
+ The loader iterates over the CSV file rows and, for each row whose import flag
33
+ is True, reads the corresponding CSV from ``--csv_location`` and appends its
34
+ contents to the named database table (existing rows are preserved; data is
35
+ inserted with ``if_exists="append"``). Rows whose import flag is False are
36
+ skipped.
37
+
38
+ This generic loader is used throughout the Data Toolkit workflow to populate
39
+ ``raw_data`` tables (e.g., VER profiles and their unit mapping, hydro operating
40
+ characteristics) that later Data Toolkit steps depend on.
41
+
42
+ =====
43
+ Usage
44
+ =====
45
+
46
+ >>> python -m data_toolkit.load_raw_data --database PATH/TO/DATABASE --csv_location PATH/TO/CSV/DIRECTORY
47
+
48
+ =========
49
+ Settings
50
+ =========
51
+ * database
52
+ * csv_location
53
+
54
+ The ``--csv_location`` directory must contain a ``files_to_import.csv``
55
+ manifest with columns for the import flag, the CSV filename, and the
56
+ destination database table, in that order.
57
+
21
58
  """
22
59
 
23
60
  import sys
24
61
  from argparse import ArgumentParser
25
62
  import os.path
63
+ from sqlite3 import Connection
64
+
26
65
  import pandas as pd
27
66
 
28
67
  from db.common_functions import spin_on_database_lock_generic, connect_to_database
@@ -69,23 +108,28 @@ def main(args=None):
69
108
  print(f"... {f}...")
70
109
  f_path = str(os.path.join(parsed_args.csv_location, f))
71
110
 
72
- # Set low_memory to False to avoid dtype warning
73
- # TODO: actually specify dtypes instead
74
- df = pd.read_csv(
75
- f_path, delimiter=",", low_memory=False, on_bad_lines="warn"
76
- )
77
-
78
- spin_on_database_lock_generic(
79
- command=df.to_sql(
80
- name=table,
81
- con=conn,
82
- if_exists="append",
83
- index=False,
84
- )
85
- )
111
+ read_and_import_csv(conn, f_path, table)
86
112
 
113
+ conn.commit()
87
114
  conn.close()
88
115
 
89
116
 
117
+ def read_and_import_csv(conn: Connection, f_path: str, table):
118
+ # Set low_memory to False to avoid dtype warning
119
+ # TODO: actually specify dtypes instead
120
+ df = pd.read_csv(f_path, delimiter=",", low_memory=False, on_bad_lines="warn")
121
+
122
+ # print(f_path)
123
+ # print(df)
124
+ spin_on_database_lock_generic(
125
+ command=df.to_sql(
126
+ name=table,
127
+ con=conn,
128
+ if_exists="append",
129
+ index=False,
130
+ )
131
+ )
132
+
133
+
90
134
  if __name__ == "__main__":
91
135
  main()
@@ -20,9 +20,11 @@ import sys
20
20
  import pandas as pd
21
21
 
22
22
  from db.common_functions import connect_to_database
23
+ from data_toolkit.load_raw_data import read_and_import_csv
23
24
  from data_toolkit.project.project_data_filters_common import (
24
25
  get_eia860_sql_filter_string,
25
26
  DISAGG_PROJECT_NAME_STR,
27
+ AGG_PROJECT_NAME_STR,
26
28
  )
27
29
 
28
30
  # Storage durations
@@ -93,6 +95,14 @@ def parse_arguments(args):
93
95
  help="Overwrite existing CSV files.",
94
96
  )
95
97
 
98
+ parser.add_argument(
99
+ "-agg",
100
+ "--aggregate_projects",
101
+ default=False,
102
+ action="store_true",
103
+ help="Aggregate all projects to the BA-technology level.",
104
+ )
105
+
96
106
  parser.add_argument("-q", "--quiet", default=False, action="store_true")
97
107
 
98
108
  parsed_arguments = parser.parse_known_args(args=args)[0]
@@ -127,13 +137,14 @@ def make_copy_files(
127
137
 
128
138
  def add_battery_durations(
129
139
  conn,
130
- disagg_project_name_str,
140
+ project_name_str,
131
141
  study_year,
132
142
  eia860_sql_filter_string,
133
143
  csv_location,
134
144
  subscenario_id,
135
145
  subscenario_name,
136
146
  tech_dur_dict,
147
+ aggregate_projects=False,
137
148
  ):
138
149
  duckdb_conn = duckdb.connect(database=":memory:")
139
150
  spec_cap_df = pd.read_csv(
@@ -145,17 +156,19 @@ def add_battery_durations(
145
156
  )
146
157
 
147
158
  for tech in tech_dur_dict.keys():
159
+ group_by = "GROUP BY project" if aggregate_projects else ""
148
160
  sql = f"""
149
- SELECT {disagg_project_name_str} AS project,
161
+ SELECT {project_name_str} AS project,
150
162
  {study_year} as period
151
163
  FROM raw_data_eia860_generators
152
164
  JOIN user_defined_eia_gridpath_key ON
153
- raw_data_eia860_generators.prime_mover_code =
165
+ raw_data_eia860_generators.prime_mover_code =
154
166
  user_defined_eia_gridpath_key.prime_mover_code
155
167
  AND energy_source_code_1 = energy_source_code
156
168
  WHERE 1 = 1
157
169
  AND {eia860_sql_filter_string}
158
170
  AND raw_data_eia860_generators.prime_mover_code = '{tech}'
171
+ {group_by}
159
172
  ;
160
173
  """
161
174
  relevant_projects_df = pd.read_sql(sql, conn)
@@ -215,9 +228,15 @@ def main(args=None):
215
228
  "PS": parsed_args.pumped_storage_duration,
216
229
  }
217
230
 
231
+ project_name_str = (
232
+ AGG_PROJECT_NAME_STR
233
+ if parsed_args.aggregate_projects
234
+ else DISAGG_PROJECT_NAME_STR
235
+ )
236
+
218
237
  add_battery_durations(
219
238
  conn=conn,
220
- disagg_project_name_str=DISAGG_PROJECT_NAME_STR,
239
+ project_name_str=project_name_str,
221
240
  study_year=parsed_args.study_year,
222
241
  eia860_sql_filter_string=get_eia860_sql_filter_string(
223
242
  study_year=parsed_args.study_year, region=parsed_args.region
@@ -226,8 +245,10 @@ def main(args=None):
226
245
  subscenario_id=parsed_args.project_specified_capacity_scenario_id,
227
246
  subscenario_name=parsed_args.project_specified_capacity_scenario_name,
228
247
  tech_dur_dict=tech_dur_dict,
248
+ aggregate_projects=parsed_args.aggregate_projects,
229
249
  )
230
250
 
251
+ conn.commit()
231
252
  conn.close()
232
253
 
233
254
 
@@ -87,6 +87,14 @@ def parse_arguments(args):
87
87
  "-avl_name", "--project_availability_scenario_name", default="no_derates"
88
88
  )
89
89
 
90
+ parser.add_argument(
91
+ "-agg",
92
+ "--aggregate_projects",
93
+ default=False,
94
+ action="store_true",
95
+ help="Aggregate all projects to the BA-technology level.",
96
+ )
97
+
90
98
  parser.add_argument("-q", "--quiet", default=False, action="store_true")
91
99
 
92
100
  parsed_arguments = parser.parse_known_args(args=args)[0]
@@ -104,14 +112,36 @@ def get_project_availability(
104
112
  csv_location,
105
113
  subscenario_id,
106
114
  subscenario_name,
115
+ aggregate_projects=False,
107
116
  ):
108
- sql = f"""
117
+ if aggregate_projects:
118
+ sql = f"""
119
+ SELECT {agg_project_name_str} AS project,
120
+ 'exogenous' AS availability_type,
121
+ NULL AS exogenous_availability_independent_scenario_id,
122
+ NULL AS exogenous_availability_weather_scenario_id,
123
+ NULL AS exogenous_availability_independent_bt_hrz_scenario_id,
124
+ NULL AS exogenous_availability_weather_bt_hrz_scenario_id,
125
+ NULL AS endogenous_availability_scenario_id
126
+ FROM raw_data_eia860_generators
127
+ JOIN user_defined_eia_gridpath_key ON
128
+ raw_data_eia860_generators.prime_mover_code =
129
+ user_defined_eia_gridpath_key.prime_mover_code
130
+ AND energy_source_code_1 = energy_source_code
131
+ WHERE 1 = 1
132
+ AND {eia860_sql_filter_string}
133
+ GROUP BY project
134
+ ;
135
+ """
136
+ else:
137
+ sql = f"""
109
138
  SELECT {disagg_project_name_str} AS project,
110
139
  'exogenous' AS availability_type,
111
140
  NULL AS exogenous_availability_independent_scenario_id,
112
141
  NULL AS exogenous_availability_weather_scenario_id,
113
142
  NULL AS exogenous_availability_independent_bt_hrz_scenario_id,
114
143
  NULL AS exogenous_availability_weather_bt_hrz_scenario_id,
144
+ NULL AS exogenous_availability_monthly_scenario_id,
115
145
  NULL AS endogenous_availability_scenario_id
116
146
  FROM raw_data_eia860_generators
117
147
  JOIN user_defined_eia_gridpath_key ON
@@ -130,6 +160,7 @@ def get_project_availability(
130
160
  NULL AS exogenous_availability_weather_scenario_id,
131
161
  NULL AS exogenous_availability_independent_bt_hrz_scenario_id,
132
162
  NULL AS exogenous_availability_weather_bt_hrz_scenario_id,
163
+ NULL AS exogenous_availability_monthly_scenario_id,
133
164
  NULL AS endogenous_availability_scenario_id
134
165
  FROM raw_data_eia860_generators
135
166
  JOIN user_defined_eia_gridpath_key
@@ -171,6 +202,7 @@ def main(args=None):
171
202
  csv_location=parsed_args.output_directory,
172
203
  subscenario_id=parsed_args.project_availability_scenario_id,
173
204
  subscenario_name=parsed_args.project_availability_scenario_name,
205
+ aggregate_projects=parsed_args.aggregate_projects,
174
206
  )
175
207
 
176
208
  conn.close()