File size: 721 Bytes
5f83674
 
6d88ccb
5f83674
6d88ccb
 
 
5f83674
 
 
 
 
 
 
 
 
 
6d88ccb
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import traceback


class PythonEvaluator:
    """Evaluates Python code safely in a sandboxed manner (basic placeholder)."""

    def __init__(self, name: str = "python_evaluator") -> None:
        self.name = name

    def evaluate(self, code_str, globals_dict=None, locals_dict=None):
        if globals_dict is None:
            globals_dict = {}
        if locals_dict is None:
            locals_dict = {}
        try:
            exec(code_str, globals_dict, locals_dict)
            return {"success": True, "globals": globals_dict, "locals": locals_dict}
        except Exception as exc:  # pragma: no cover - defensive
            return {"success": False, "error": str(exc), "traceback": traceback.format_exc()}