|
import gradio as gr |
|
from interface.rebalancing_interface import ( |
|
input as rebalancing_inputs, |
|
output as rebalancing_output, |
|
update_output as rebalancing_update_output, |
|
examples as rebalancing_examples, |
|
component_rows as rebalancing_component_rows |
|
) |
|
from interface.share_price_trend_interface import ( |
|
input as share_price_trend_inputs, |
|
output as share_price_trend_output, |
|
update_output as share_price_trend_update_output, |
|
examples as share_price_trend_examples, |
|
component_rows as share_price_trend_component_rows |
|
) |
|
from interface.dollar_cost_averaging_interface import ( |
|
input as dollar_cost_averaging_inputs, |
|
output as dollar_cost_averaging_output, |
|
update_output as dollar_cost_averaging_update_output, |
|
examples as dollar_cost_averaging_examples, |
|
component_rows as dollar_cost_averaging_component_rows |
|
) |
|
from interface.retirement_planning_interface import ( |
|
input as retirement_planning_inputs, |
|
output as retirement_planning_output, |
|
update_output as retirement_update_output, |
|
examples as retirement_planning_examples, |
|
component_rows as retirement_planning_component_rows, |
|
) |
|
from interface.about_interface import render_about_tab |
|
from modules.utils import create_tab |
|
|
|
tabs_configuration = [ |
|
("π Re-Balancing Calculator", rebalancing_inputs, rebalancing_output, rebalancing_update_output, rebalancing_examples, rebalancing_component_rows), |
|
("π Share Price Trend", share_price_trend_inputs, share_price_trend_output, share_price_trend_update_output, share_price_trend_examples, share_price_trend_component_rows), |
|
("π Dollar Cost Averaging Calculator", dollar_cost_averaging_inputs, dollar_cost_averaging_output, dollar_cost_averaging_update_output, dollar_cost_averaging_examples, dollar_cost_averaging_component_rows), |
|
("π― Retirement Planning", retirement_planning_inputs, retirement_planning_output, retirement_update_output, retirement_planning_examples, retirement_planning_component_rows), |
|
] |
|
|
|
def initial_load(*args): |
|
idx = 0 |
|
rebalancing_results = rebalancing_update_output(*args[idx:idx+len(rebalancing_inputs)]) |
|
idx += len(rebalancing_inputs) |
|
share_price_trend_results = share_price_trend_update_output(*args[idx:idx+len(share_price_trend_inputs)]) |
|
idx += len(share_price_trend_inputs) |
|
dollar_cost_averaging_results = dollar_cost_averaging_update_output(*args[idx:idx+len(dollar_cost_averaging_inputs)]) |
|
idx += len(dollar_cost_averaging_inputs) |
|
retirement_results = retirement_update_output(*args[idx:]) |
|
|
|
return (rebalancing_results, share_price_trend_results, dollar_cost_averaging_results, retirement_results) |
|
|
|
with gr.Blocks(css='style.css') as demo: |
|
with gr.Column(elem_id="col-container"): |
|
with gr.Tabs(): |
|
for tab in tabs_configuration: |
|
create_tab(*tab) |
|
render_about_tab() |
|
|
|
demo.load( |
|
initial_load, |
|
inputs=rebalancing_inputs + share_price_trend_inputs + dollar_cost_averaging_inputs + retirement_planning_inputs, |
|
outputs=[ |
|
rebalancing_output, |
|
share_price_trend_output, |
|
dollar_cost_averaging_output, |
|
retirement_planning_output |
|
] |
|
) |
|
demo.launch(share=True) |
|
|