result = session.run("raise ValueError('oops')")print(result.success) # Falseif result.error: print(f"Error: {result.error.ename}") # "ValueError" print(f"Message: {result.error.evalue}") # "oops" for line in result.error.traceback: print(line)
cell = session.get_cell(cell_id)print(f"ID: {cell.id}")print(f"Type: {cell.cell_type}")print(f"Source: {cell.source}")print(f"Executed: {cell.execution_count is not None}")
import runtimedwith runtimed.Session() as session: session.start_kernel() # Execute code with multiple outputs code = """import matplotlib.pyplot as pltprint("Generating plot...")plt.plot([1, 2, 3, 4])plt.show()print("Done")""" result = session.run(code) # Process each output type for output in result.outputs: if output.output_type == "stream": print(f"[{output.name}] {output.text}") elif output.output_type == "display_data": print(f"Display output with MIME types: {list(output.data.keys())}") if "image/png" in output.data: # Save the image import base64 png_data = base64.b64decode(output.data["image/png"]) with open("plot.png", "wb") as f: f.write(png_data) elif output.output_type == "error": print(f"Error: {output.ename}: {output.evalue}")
import runtimedwith runtimed.Session() as session: session.start_kernel() cells_to_run = [ "import pandas as pd", "df = pd.DataFrame({'a': [1, 2, 3]})", "print(df.sum())" ] for code in cells_to_run: result = session.run(code) if not result.success: print(f"Execution failed: {code}") if result.error: print(f" Error: {result.error.ename}: {result.error.evalue}") break if result.stdout: print(f"Output: {result.stdout}")
result = session.run("""import pandas as pddf = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})df""")# Get the table as HTMLfor output in result.display_data: if "text/html" in output.data: html = output.data["text/html"] with open("table.html", "w") as f: f.write(html) if "text/plain" in output.data: print(output.data["text/plain"])
result = session.run("""def divide(a, b): return a / bdivide(10, 0)""")if result.error: print("Error occurred:") print(f" Type: {result.error.ename}") print(f" Message: {result.error.evalue}") print("\nTraceback:") for line in result.error.traceback: # Traceback lines include ANSI color codes print(line)
def execute_with_retry(session, code, max_retries=3): """Execute code with retry on specific errors.""" for attempt in range(max_retries): result = session.run(code) if result.success: return result if result.error: # Don't retry on syntax errors if result.error.ename == "SyntaxError": raise RuntimeError(f"Syntax error: {result.error.evalue}") # Retry on other errors print(f"Attempt {attempt + 1} failed: {result.error.ename}") if attempt == max_retries - 1: raise RuntimeError(f"Max retries exceeded: {result.error.evalue}") return result# Usagetry: result = execute_with_retry(session, "import flaky_module")except RuntimeError as e: print(f"Failed: {e}")