CoolFace
Apppublic

eihab2342/code-efficiency

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes
evaluator.py50 linesDownload Raw Back to model
1# src/model/evaluator.py2"""3يقيّم الموديل على الـ test set ويطبع تقرير.4 5تشغيل:6    python -m src.model.evaluator7"""8import ast9from src.model.predictor import Predictor10from src.preprocessing.data_loader import load_dataset, Sample11from src.utils.logger import get_logger12from typing import List13 14log = get_logger("evaluator")15 16 17def _is_valid_python(code: str) -> bool:18    try:19        ast.parse(code)20        return True21    except SyntaxError:22        return False23 24 25def evaluate(predictor: Predictor, test_samples: List[Sample]) -> dict:26    correct, total = 0, 027 28    for s in test_samples:29        total += 130        try:31            result = predictor.predict(s.slow_code)32            if _is_valid_python(result.optimized_code):33                correct += 134        except Exception as e:35            log.warning(f"فشل sample: {e}")36 37    metrics = {38        "total":       total,39        "correct":     correct,40        "correctness": f"{correct/total:.1%}" if total else "0%",41    }42    log.info(f"Evaluation: {metrics}")43    return metrics44 45 46if __name__ == "__main__":47    _, _, test = load_dataset()48    p = Predictor()49    evaluate(p, test)50