Explorar o código

make all builtins available in action code

Joeri Exelmans hai 1 ano
pai
achega
943af428a7
Modificáronse 1 ficheiros con 3 adicións e 2 borrados
  1. 3 2
      util/eval.py

+ 3 - 2
util/eval.py

@@ -1,12 +1,13 @@
 # based on https://stackoverflow.com/a/39381428
 # Parses and executes a block of Python code, and returns the eval result of the last statement
+
 import ast
 def exec_then_eval(code, _globals={}, _locals={}):
     block = ast.parse(code, mode='exec')
     # assumes last node is an expression
     last = ast.Expression(block.body.pop().value)
     extended_globals = {
-        '__builtins__': {'isinstance': isinstance, 'print': print, 'int': int, 'float': float, 'bool': bool, 'str': str, 'tuple': tuple, 'len': len, 'set': set, 'dict': dict, 'eval': eval },
+        '__builtins__': __builtins__,
         **_globals,
     }
     exec(compile(block, '<string>', mode='exec'), extended_globals, _locals)
@@ -15,7 +16,7 @@ def exec_then_eval(code, _globals={}, _locals={}):
 def simply_exec(code, _globals={}, _locals={}):
     block = ast.parse(code, mode='exec')
     extended_globals = {
-        '__builtins__': {'isinstance': isinstance, 'print': print, 'int': int, 'float': float, 'bool': bool, 'str': str, 'tuple': tuple, 'len': len, 'set': set, 'dict': dict, 'eval': eval },
+        '__builtins__': __builtins__,
         **_globals,
     }
     exec(compile(block, '<string>', mode='exec'), extended_globals, _locals)