import sys | |
import io | |
import yaml | |
import pdb | |
class python_executor: | |
def __init__(self): | |
pass | |
def run_single(self, program): | |
buffer = io.StringIO() # Create an in-memory buffer for the output | |
stdout = sys.stdout # Save the original standard output | |
sys.stdout = buffer # Redirect the standard output to the buffer | |
try: | |
exec(program) | |
except Exception as e: | |
# Handle the error here | |
error_message = str(e) | |
sys.stdout = stdout # Restore the original standard output | |
return error_message | |
exec(program) | |
sys.stdout = stdout # Restore the original standard output | |
output = buffer.getvalue() # Get the output from the buffer | |
return output | |
def run(self, snippet): | |
if snippet == None: | |
return None | |
exec_result = self.run_single(snippet) | |
if exec_result and 'False' in exec_result: | |
exec_result = 'False' | |
else: | |
exec_result = 'True' | |
return exec_result |