def session_state_getter()

in src/backend/utils.py [0:0]


def session_state_getter(session_dict):
    return {
        "data_provider": session_dict.get("data_provider"),
        "time_period": session_dict["time_period"],
        "interval": session_dict["interval"],
        "tradable_symbols_prompt": session_dict["tradable_symbols_prompt"],
        "supplementary_symbols_prompt": session_dict["supplementary_symbols_prompt"],
        "economic_indicators": session_dict.get("economic_indicators") or [],
        "dividend_fields": session_dict.get("dividend_fields") or [],
        "fx_rates": {},
        "datasets_keys": session_dict["datasets_keys"],
        "indicators_dialogue": session_dict.get("indicators_dialogue"),
        "indicators_query": session_dict.get("indicators_dialogue")[-2] if session_dict.get("indicators_dialogue") else "",
        "indicators_logic": session_dict.get("indicators_dialogue")[-1] if session_dict.get("indicators_dialogue") else "",
        "alerts_query": session_dict.get("alerts_dialogue")[-2] if session_dict.get("alerts_dialogue") else "",
        "alerts_logic": session_dict.get("alerts_dialogue")[-1] if session_dict.get("alerts_dialogue") else "",
        "strategy_title": session_dict.get("trading_rule_title") or session_dict.get("strategy_title"),
        "strategy_description": session_dict.get("model_descr") or session_dict.get("strategy_description"),
        "actual_currency": session_dict["actual_currency"],
        "bet_size": session_dict["bet_size"],
        "per_instrument_gross_limit": session_dict["per_instrument_gross_limit"],
        "total_gross_limit": session_dict["total_gross_limit"],
        "nop_limit": session_dict["nop_limit"],
        "use_dividends_trading": session_dict.get("use_dividends_trading", False),
        "fill_trade_price": session_dict["fill_trade_price"] if session_dict.get("fill_trade_price", None) is not None else "",
        "execution_cost_bps": session_dict.get("execution_cost_bps", 0.0),
        "optimization_trials": session_dict.get("optimization_trials", 5),
        "optimization_train_size": session_dict.get("optimization_train_size", 1.0),
        "optimization_params": session_dict.get("optimization_params", []),
        "optimization_minimize": session_dict.get("optimization_minimize", True),
        "optimization_maximize": session_dict.get("optimization_maximize", True),
        "optimization_sampler": session_dict.get("optimization_sampler"),
        "optimization_target_func": session_dict.get("optimization_target_func"),
    }