hjkim00's picture
Restore all essential files - code, configs, and MBPP/HumanEval data
24c2665 verified
import json
from typing import Callable, List
def check_id(data: dict, task_id: str):
assert data[task_id]["task_id"] == f"HumanEval/{task_id}"
def evolve(src_file: str, tgt_file: str, fix: Callable):
with open(src_file) as f:
data = [json.loads(line) for line in f.readlines() if line]
data = fix(data)
with open(tgt_file, "wb") as f:
for x in data:
f.write((json.dumps(x) + "\n").encode("utf-8"))
def replay_contract(data: dict, tid: int) -> dict:
code = data[tid]["prompt"] + data[tid]["contract"]
exec(code)
func = locals()[data[tid]["entry_point"]]
new_inputs = []
for inputs in data[tid]["plus_input"]:
try:
func(*inputs)
new_inputs.append(inputs)
except Exception as e:
assert str(e) == "invalid inputs"
before, after = len(data[tid]["plus_input"]), len(new_inputs)
data[tid]["plus_input"] = new_inputs
print(f"HumanEval/{tid}: {before} -> {after}")
return before - after
def debug_output(version: str, tasks: List[int]):
with open(f"HumanEvalPlus-{version}.jsonl") as f:
data = [json.loads(line) for line in f.readlines() if line]
data = {x["task_id"]: x for x in data}
for tid in tasks:
title = f"HumanEval/{tid}:\n"
code = (
data[f"HumanEval/{tid}"]["prompt"]
+ data[f"HumanEval/{tid}"]["contract"]
+ data[f"HumanEval/{tid}"]["canonical_solution"]
)
print(title)
print(code)
exec(code)
print("====================================")