Function allowance to interpretable
Browse files- interpreter.py +5 -2
interpreter.py
CHANGED
@@ -18,6 +18,9 @@ def run_code(code):
|
|
18 |
old_stdout = sys.stdout
|
19 |
redirected_output = sys.stdout = io.StringIO()
|
20 |
|
|
|
|
|
|
|
21 |
try:
|
22 |
# Parse the code to detect function definitions
|
23 |
tree = ast.parse(code)
|
@@ -25,8 +28,8 @@ def run_code(code):
|
|
25 |
node.name for node in ast.walk(tree) if isinstance(node, ast.FunctionDef)
|
26 |
]
|
27 |
|
28 |
-
# Execute the code
|
29 |
-
exec(code)
|
30 |
|
31 |
# Check if functions are defined but not called
|
32 |
if function_names:
|
|
|
18 |
old_stdout = sys.stdout
|
19 |
redirected_output = sys.stdout = io.StringIO()
|
20 |
|
21 |
+
# Create a dedicated execution namespace
|
22 |
+
exec_globals = {}
|
23 |
+
|
24 |
try:
|
25 |
# Parse the code to detect function definitions
|
26 |
tree = ast.parse(code)
|
|
|
28 |
node.name for node in ast.walk(tree) if isinstance(node, ast.FunctionDef)
|
29 |
]
|
30 |
|
31 |
+
# Execute the code in the dedicated namespace
|
32 |
+
exec(code, exec_globals)
|
33 |
|
34 |
# Check if functions are defined but not called
|
35 |
if function_names:
|