Skip to main content

Stream stdout

def on_stdout(message):
    print(message.line, end="")

execution = sandbox.code_interpreter.run_code(
    "for i in range(3): print(f'line {i}')",
    language="python",
    on_stdout=on_stdout,
    envs={"RUN_MODE": "docs"},
    timeout=30,
)

Stream results and errors

def on_result(result):
    print("result", result.text)

def on_error(error):
    print(error.name, error.value)

sandbox.code_interpreter.run_code(
    "1 + 1",
    on_result=on_result,
    on_error=on_error,
)

Stream artifacts

def on_artifact(artifact):
    print(artifact.id, artifact.kind)

sandbox.code_interpreter.run_code(
    "from IPython.display import SVG\nSVG(data='<svg></svg>')",
    on_artifact=on_artifact,
)
sandbox.run_code() is a convenience wrapper for standard output, standard error, results, artifacts, errors, language, environment, context, and timeout callbacks.