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