@@ -16,48 +16,46 @@ def compute_blue_columns(year: int, gas_params: GasParams, shared_params: Shared
1616
1717
1818def run_model (scenario_params : ScenarioParams , input_params : InputParams , npa_projects : pl .DataFrame ) -> pl .DataFrame :
19- # initialize all the state
20- gas_ratebase = 0
21- electric_ratebase = 0
22- num_gas_users = input_params .num_users
23- num_electric_users = input_params .num_users
24-
25- gas_capex_projects = []
26- electric_capex_projects = []
19+ gas_capex_projects = pl .DataFrame ()
20+ electric_capex_projects = pl .DataFrame ()
2721
2822 output_df = pl .DataFrame ()
2923
24+ live_params = input_params
25+
3026 for year in range (scenario_params .start_year , scenario_params .end_year ):
3127 # INFLATION - probably looks like evolving input_params to current_params
32- do_cost_inflation (year , input_params )
28+ live_params = do_cost_inflation (year , live_params )
3329
3430 # get the npas for this year
35- npas_this_year = get_info_about_projects ( npa_projects , year ) # polars groupby year, weighted_sum
31+ npas_this_year = npa_projects . filter ( pl . col ( " year" ) == year )
3632
3733 ####### ticket
3834 # gas capex
39- gas_capex_projects . append (
35+ gas_capex_projects = gas_capex_projects . vstack (
4036 non_lpp_gas_capex_projects (year , input_params )
4137 ) # maybe has different depreciation schedule
42- gas_capex_projects . append (lpp_gas_capex_projects (year , input_params , npas_this_year ))
38+ gas_capex_projects = gas_capex_projects . vstack (lpp_gas_capex_projects (year , input_params , npas_this_year ))
4339
4440 ####### ticket
4541 # electric capex
46- electric_capex_projects .append (non_npa_electric_capex_projects (year , input_params ))
47- electric_capex_projects .append (grid_upgrade_capex_projects (year , input_params , npa_projects ))
42+ electric_capex_projects = electric_capex_projects .vstack (non_npa_electric_capex_projects (year , input_params ))
43+ electric_capex_projects = electric_capex_projects .vstack (
44+ grid_upgrade_capex_projects (year , input_params , npa_projects )
45+ )
4846
4947 # npa capex
5048 if scenario_params .capex_opex == "capex" :
51- npa_capex = get_npa_capex_project (npas_this_year )
49+ npa_capex = get_npa_capex_projects (npas_this_year , year , input_params )
5250 if scenario_params .gas_electric == "gas" :
53- gas_capex_projects . append (npa_capex )
51+ gas_capex_projects = gas_capex_projects . vstack (npa_capex )
5452 elif scenario_params .gas_electric == "electric" :
55- electric_capex_projects . append (npa_capex )
53+ electric_capex_projects = electric_capex_projects . vstack (npa_capex )
5654
57- gas_ratebase = update_ratebase (year , gas_ratebase , gas_capex_projects )
58- electric_ratebase = update_ratebase (year , electric_ratebase , electric_capex_projects )
55+ gas_ratebase = get_ratebase_from_capex_projects (year , gas_capex_projects )
56+ electric_ratebase = get_ratebase_from_capex_projects (year , electric_capex_projects )
5957
60- num_gas_users -= npas_this_year . num_converts
58+ ## TODO: opex stuff?
6159
6260 ####### ticket
6361 intermediate_columns = compute_blue_columns () # returns pl.Series
0 commit comments