def save_new_keys_in_origin_session()

in src/backend/domain/services/steps/optimization.py [0:0]


def save_new_keys_in_origin_session(session_dict_origin, session_dict):
    if "fx_rates" in session_dict:
        session_dict_origin.setdefault("fx_rates", dict())
        new_keys = set(session_dict["fx_rates"].keys()) - set(session_dict_origin["fx_rates"].keys())
        if new_keys:
            provider = data_providers[session_dict_origin["data_provider"]]
            for fx_rate_symbol in new_keys:
                left_curr, right_curr = fx_rate_symbol.split("/")
                if left_curr == right_curr:
                    session_dict_origin["fx_rates"][fx_rate_symbol] = pd.DataFrame(
                        data=1.0, columns=["open", "high", "low", "close"], index=session_dict_origin["time_line"]
                    )
                else:
                    session_dict_origin["fx_rates"][fx_rate_symbol] = get_fx_rate(
                        session_dict_origin["time_line"],
                        fx_rate_symbol,
                        session_dict_origin["start_date"],
                        session_dict_origin["end_date"],
                        data_periodicities[session_dict_origin["interval"]]["value"],
                        provider,
                    )

    if "dividends_by_symbol" in session_dict:
        session_dict_origin.setdefault("dividends_by_symbol", dict())
        new_keys = set(session_dict["dividends_by_symbol"].keys()) - set(session_dict_origin["dividends_by_symbol"].keys())
        if new_keys:
            provider = data_providers[session_dict_origin["data_provider"]]
            for symbol in new_keys:
                session_dict_origin["dividends_by_symbol"][symbol] = get_sparse_dividends(
                    time_line=session_dict_origin["time_line"],
                    provider=provider,
                    symbol=symbol,
                    div_end_date=session_dict_origin["end_date"],
                    div_start_date=session_dict_origin["start_date"],
                    true_symbols=session_dict_origin["true_symbols"],
                )