def set_default_state()

in src/backend/entrypoints/streamlit_frontend/state.py [0:0]


def set_default_state():
    if "log" not in st.session_state:
        st.session_state.log = []
    if "tradable_symbols" not in st.session_state:
        st.session_state.tradable_symbols = []
    if "tradable_symbols_prompt" not in st.session_state:
        st.session_state.tradable_symbols_prompt = ""
    if "fetched_data" not in st.session_state:
        st.session_state.fetched_data = False
    if "trading_data" not in st.session_state:
        st.session_state.trading_data = False
    if "indicators_query" not in st.session_state:
        st.session_state.indicators_query = ""
    if "indicators_dialogue" not in st.session_state:
        st.session_state.indicators_dialogue = []
    if "alerts_dialogue" not in st.session_state:
        st.session_state.alerts_dialogue = []
    if "trading_dialogue" not in st.session_state:
        st.session_state.trading_dialogue = []
    if "alerts_query" not in st.session_state:
        st.session_state.alerts_query = ""
    if "trading_query" not in st.session_state:
        st.session_state.trading_query = ""
    if "roots" not in st.session_state:
        st.session_state.roots = {}
    if "trigger_alert" not in st.session_state:
        st.session_state.trigger_alert = None

    if "start_date" not in st.session_state:
        st.session_state.start_date = "2022-01-01 00:00:00"
    if "end_date" not in st.session_state:
        st.session_state.end_date = "2022-02-01 00:00:00"

    if "num_cols_price" not in st.session_state:
        st.session_state.num_cols_price = 3
    if "price_figs" not in st.session_state:
        st.session_state.price_figs = []
    if "num_cols_indicators" not in st.session_state:
        st.session_state.num_cols_indicators = 3
    if "indicators_figs" not in st.session_state:
        st.session_state.indicators_figs = []
    if "num_cols_alerts" not in st.session_state:
        st.session_state.num_cols_alerts = 3
    if "num_cols_tradings" not in st.session_state:
        st.session_state.num_cols_tradings = 3
    if "num_cols_strategy_tradings" not in st.session_state:
        st.session_state.num_cols_strategy_tradings = 3
    if "alerts_figs" not in st.session_state:
        st.session_state.alerts_figs = []
    if "trading_symbols_figs" not in st.session_state:
        st.session_state.trading_symbols_figs = []
    if "trading_strategy_figs" not in st.session_state:
        st.session_state.trading_strategy_figs = []

    if "symbols_lookup" not in st.session_state:
        st.session_state.symbols_lookup = []
    # if "tickers" not in st.session_state:
    #     st.session_state.tickers = ""
    if "tickers_expand" not in st.session_state:
        st.session_state.tickers_expand = False
    if "datasets_expand" not in st.session_state:
        st.session_state.datasets_expand = False
    if "add_ticker_buttons" not in st.session_state:
        st.session_state.add_ticker_buttons = [False]
    if "keyclock_session" not in st.session_state:
        st.session_state.keycloak_session = None
    if "logging_out" not in st.session_state:
        st.session_state.logging_out = False
    if "added_datasets" not in st.session_state:
        st.session_state.added_datasets = False
    if "logged_out" not in st.session_state:
        st.session_state.logged_out = False
    if "available_timezones" not in st.session_state:
        st.session_state.available_timezones = None
    if "indicator_error" not in st.session_state:
        st.session_state.indicator_error = None
    if "alert_error" not in st.session_state:
        st.session_state.alert_error = None
    if "events" not in st.session_state:
        st.session_state.events = []
    if "trading_rules" not in st.session_state:
        st.session_state.trading_rules = []
    if "trading_page_num" not in st.session_state:
        st.session_state.trading_page_num = 1
    if "trading_page_size" not in st.session_state:
        st.session_state.trading_page_size = DEFAULT_PAGE_SIZE
    if "public_page_num" not in st.session_state:
        st.session_state.public_page_num = 1
    if "public_page_size" not in st.session_state:
        st.session_state.public_page_size = DEFAULT_PAGE_SIZE
    if "alert_page_num" not in st.session_state:
        st.session_state.alert_page_num = 1
    if "alert_page_size" not in st.session_state:
        st.session_state.alert_page_size = DEFAULT_PAGE_SIZE
    if "event_page_num" not in st.session_state:
        st.session_state.event_page_num = 1
    if "event_page_size" not in st.session_state:
        st.session_state.event_page_size = DEFAULT_PAGE_SIZE

    if "app_mode" not in st.session_state:
        st.session_state.app_mode = APP_MODES[0]

    if "alert_edit" not in st.session_state:
        st.session_state.alert_edit = None
    if "data_periodicity_index" not in st.session_state:
        st.session_state.data_periodicity_index = 0
    if "fetch_data_range_index" not in st.session_state:
        st.session_state.fetch_data_range_index = None
    if "trigger_type_index" not in st.session_state:
        st.session_state.trigger_type_index = 0
    if "timezone_index" not in st.session_state:
        st.session_state.timezone_index = 0
    if "alert_email_receivers" not in st.session_state:
        st.session_state.alert_email_receivers = ""
    if "alert_title" not in st.session_state:
        st.session_state.alert_title = ""

    if "llm_chat_disabled" not in st.session_state:
        st.session_state.llm_chat_disabled = False
    if "income_statements" not in st.session_state:
        st.session_state.income_statements = None
    if "balance_sheets" not in st.session_state:
        st.session_state.balance_sheets = None
    if "income_currencies" not in st.session_state:
        st.session_state.income_currencies = None
    if "balance_currencies" not in st.session_state:
        st.session_state.balance_currencies = None

    if "actual_currency" not in st.session_state:
        st.session_state.actual_currency = ""
    if "bet_size" not in st.session_state:
        st.session_state.bet_size = 0
    if "per_instrument_gross_limit" not in st.session_state:
        st.session_state.per_instrument_gross_limit = 0
    if "total_gross_limit" not in st.session_state:
        st.session_state.total_gross_limit = 0
    if "nop_limit" not in st.session_state:
        st.session_state.nop_limit = 0

    if "backtest_mem_usage" not in st.session_state:
        st.session_state.backtest_mem_usage = 0
    if "backtest_exec_time" not in st.session_state:
        st.session_state.backtest_exec_time = 0
    if "symbol_to_currency" not in st.session_state:
        st.session_state.symbol_to_currency = {}
    if "mode_index" not in st.session_state:
        st.session_state.mode_index = 0
    if "fetch_ticker_error" not in st.session_state:
        st.session_state.fetch_ticker_error = False

    if "jupyter_redirect_url" not in st.session_state:
        st.session_state.jupyter_redirect_url = ""
    if "trading_rule_title" not in st.session_state:
        st.session_state.trading_rule_title = ""
    if "lclsglbls" not in st.session_state:
        st.session_state.lclsglbls = {}
    if "time_range" not in st.session_state:
        st.session_state.time_range = ""
    if "engine" not in st.session_state:
        st.session_state.engine = "gpt-4"
    if "show_send_form" not in st.session_state:
        st.session_state.show_send_form = False
    if "application_flow" not in st.session_state:
        st.session_state.application_flow = AppFlow()
    if "show_import" not in st.session_state:
        st.session_state.show_import = False
    if "datasets_multiselect" not in st.session_state:
        st.session_state.datasets_multiselect = [dataset.DATASET_NAME for dataset in datasets.values() if dataset.IS_DEFAULT]
    if "is_admin" not in st.session_state:
        st.session_state.is_admin = False
    if "public_rule" not in st.session_state:
        st.session_state.public_rule = False
    if "dividends_currency_match" not in st.session_state:
        st.session_state.dividends_currency_match = True
    if "use_dividends_trading" not in st.session_state:
        st.session_state.use_dividends_trading = False
    if "indicators_code_log" not in st.session_state:
        st.session_state.indicators_code_log = []
    if "trading_code_log" not in st.session_state:
        st.session_state.trading_code_log = []
    if "show_indicators_code_editor" not in st.session_state:
        st.session_state.show_indicators_code_editor = False
    if "show_trading_code_editor" not in st.session_state:
        st.session_state.show_trading_code_editor = False
    if "model_descr" not in st.session_state:
        st.session_state.model_descr = ""

    if "execution_cost_bps" not in st.session_state:
        st.session_state.execution_cost_bps = 0.0
    if "fill_trade_price" not in st.session_state:
        st.session_state.fill_trade_price = trade_fill_prices.get_default_price().BACKEND_KEY
    if "fx_rates" not in st.session_state:
        st.session_state.fx_rates = dict()
    if "supplementary_symbols_prompt" not in st.session_state:
        st.session_state.supplementary_symbols_prompt = ""
    if "supplementary_symbols" not in st.session_state:
        st.session_state.supplementary_symbols = []
    if "datasets_keys" not in st.session_state:
        st.session_state.datasets_keys = []
    if "data_provider" not in st.session_state:
        st.session_state.data_provider = ""