import time class BenchmarkRunner: def run(self, orchestrator, datasets): results = [] for name, (df, target) in datasets.items(): start = time.time() try: output = orchestrator.run(df, target, train=True) end = time.time() results.append({ "dataset": name, "strategy": output.get("strategy"), "metrics": output.get("metrics"), "time": round(end - start, 2), "error": None }) except Exception as e: end = time.time() results.append({ "dataset": name, "strategy": None, "metrics": None, "time": round(end - start, 2), "error": str(e) }) return results