def get_slice()

in src/backend/entrypoints/llm_backend/infrastructure/session.py [0:0]


    def get_slice(self, start: int, end: int) -> "Session":
        required_keys = ["time_line", "u_strs", "data_by_symbol"]
        if not all(key in self for key in required_keys):
            raise RuntimeError("Couldn't create session slice: " + ", ".join(required_keys) + " must be present")

        session_slice = copy(self)
        session_slice.data = copy(session_slice.data)
        session_slice["u_strs"] = session_slice["u_strs"].copy()
        session_slice["time_line"] = session_slice["time_line"][start:end]
        session_slice["data_by_symbol"] = {key: value[start:end] for key, value in session_slice["data_by_symbol"].items()}
        if "fx_rates" in session_slice:
            session_slice.fx_rates = copy(session_slice["fx_rates"])
            session_slice["fx_rates"] = {key: value[start:end] for key, value in session_slice["fx_rates"].items()}
        if "dividends_by_symbol" in session_slice:
            session_slice.dividends_by_symbol = copy(session_slice["dividends_by_symbol"])
            session_slice["dividends_by_symbol"] = {
                key: value[start:end] for key, value in session_slice["dividends_by_symbol"].items()
            }
        session_slice["start_date"] = str(session_slice["time_line"][0])
        session_slice["end_date"] = str(session_slice["time_line"][-1])
        return session_slice