From a4d5a2d66a6430e895436ec7b09a0224d48495f3 Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 14 Sep 2024 17:47:27 +0800 Subject: [PATCH] fix: eval_method cannot catch run factor error (#260) * Update eval_method.py abort subsequent evaluators for invalid gen_df * add AttributeError * add raise_exception for eval_method * remove custom exception catch --- rdagent/components/benchmark/eval_method.py | 2 +- rdagent/scenarios/qlib/factor_experiment_loader/json_loader.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/rdagent/components/benchmark/eval_method.py b/rdagent/components/benchmark/eval_method.py index c94a0e3e..3bf998b6 100644 --- a/rdagent/components/benchmark/eval_method.py +++ b/rdagent/components/benchmark/eval_method.py @@ -104,7 +104,7 @@ class BaseEval: try: eval_res.append((ev, ev.evaluate(implementation=case_gen, gt_implementation=case_gt))) # if the corr ev is successfully evaluated and achieve the best performance, then break - except CoderError as e: + except (CoderError, AttributeError) as e: return e except Exception as e: # exception when evaluation diff --git a/rdagent/scenarios/qlib/factor_experiment_loader/json_loader.py b/rdagent/scenarios/qlib/factor_experiment_loader/json_loader.py index 5f080f80..5e04a0d4 100644 --- a/rdagent/scenarios/qlib/factor_experiment_loader/json_loader.py +++ b/rdagent/scenarios/qlib/factor_experiment_loader/json_loader.py @@ -55,10 +55,9 @@ class FactorTestCaseLoaderFromJsonFile: factor_formulation=factor_data["formulation"], variables=factor_data["variables"], ) - gt = FactorFBWorkspace(task) + gt = FactorFBWorkspace(task, raise_exception=True) code = {"factor.py": factor_data["gt_code"]} gt.inject_code(**code) - gt.execute() TestData.target_task.sub_tasks.append(task) TestData.ground_truth.append(gt)