in repl/src/main/resources/fake_shell.py [0:0]
def execute_request(content):
try:
code = content['code']
except KeyError:
return execute_reply_internal_error(
'Malformed message: content object missing "code"', sys.exc_info()
)
try:
nodes = parse_code_into_nodes(code)
except SyntaxError:
exc_type, exc_value, tb = sys.exc_info()
return execute_reply_error(exc_type, exc_value, None)
result = None
try:
for node in nodes:
result = node.execute()
except UnknownMagic:
exc_type, exc_value, tb = sys.exc_info()
return execute_reply_error(exc_type, exc_value, None)
except ExecutionError as e:
return execute_reply_error(*e.exc_info)
if result is None:
result = {}
stdout = sys.stdout.getvalue()
stderr = sys.stderr.getvalue()
clearOutputs()
output = result.pop('text/plain', '')
if stdout:
output += stdout
if stderr:
output += stderr
output = output.rstrip()
# Only add the output if it exists, or if there are no other mimetypes in the result.
if output or not result:
result['text/plain'] = output.rstrip()
return execute_reply_ok(result)