feat: variable printing tool of data_science coder testing (#658)

* update debug_info printing

* refine infomation printing

* update ensemble evaluator prompt

* substitute repr with reprlib.repr

* strip comments
This commit is contained in:
Haoran Pan
2025-03-05 13:08:30 +08:00
committed by GitHub
parent 2ed6ec53d9
commit b49505be8e
5 changed files with 95 additions and 5 deletions
@@ -25,10 +25,32 @@ print(f"train_y.shape: {train_y.shape}" if not isinstance(train_y, list) else f"
print(f"val_X.shape: {val_X.shape}")
print(f"val_y.shape: {val_y.shape}" if not isinstance(val_y, list) else f"val_y(list)'s length: {len(val_y)}")
import sys
import reprlib
def debug_info_print(func):
aRepr = reprlib.Repr()
aRepr.maxother=300
def wrapper(*args, **kwargs):
def local_trace(frame, event, arg):
if event == "return" and frame.f_code == func.__code__:
print("\n" + "="*20 + "Running model training code, local variable values:" + "="*20)
for k, v in frame.f_locals.items():
printed = aRepr.repr(v)
print(f"{k}:\n {printed}")
print("="*20 + "Local variable values end" + "="*20)
return local_trace
sys.settrace(local_trace)
try:
return func(*args, **kwargs)
finally:
sys.settrace(None)
return wrapper
# First execution
print("The first execution begins.\n")
start_time = time.time()
val_pred, test_pred, hypers = model_workflow(
val_pred, test_pred, hypers = debug_info_print(model_workflow)(
X=train_X,
y=train_y,
val_X=val_X,
@@ -40,7 +62,7 @@ log_execution_results(start_time, val_pred, test_pred, hypers, "The first execut
# Second execution
print("The second execution begins.\n")
start_time = time.time()
val_pred, test_pred, final_hypers = model_workflow(
val_pred, test_pred, final_hypers = debug_info_print(model_workflow)(
X=train_X,
y=train_y,
val_X=None,