from typing import Tuple import pandas as pd from datetime import datetime def time_based_split( df: pd.DataFrame, timestamp_col: str = "timestamp", train_pct: float = 0.70, val_pct: float = 0.85, ) -> Tuple[pd.DataFrame, pd.DataFrame, pd.DataFrame]: df_sorted = df.sort_values(timestamp_col) n_total = len(df_sorted) n_train = int(n_total * train_pct) n_val = int(n_total * val_pct) train = df_sorted.iloc[:n_train] val = df_sorted.iloc[n_train:n_val] test = df_sorted.iloc[n_val:] return train, val, test __all__ = ["time_based_split"]