Run Code
Execute Python and JavaScript code securely in isolated sandboxes.
sandbox.run(
code: str,
timeout: int = 10000,
language: str = "python" | "javascript",
streaming: bool = False,
callback: Optional[Callable[[dict], None]] = None
) -> RunResultParameters
codestringrequiredPython code to execute. Can be a single line or multi-line script.
timeoutintTimeout in milliseconds. Default: 10000 (10s), 300000 (5min) with streaming=True.
languagestringProgramming language to use. Supported values: python (default) or javascript.
streamingboolEnable real-time streaming of stdout/stderr as code executes. Defaults to False.
callbackcallableOptional callback function invoked for each streaming event when streaming=True.
def on_event(event: dict) -> None:
# event: {
# "type": "stdout"|"stderr"|"exit",
# "data": "...",
# "code": int
# }
passReturns
stdoutstrStandard output from the code execution.
stderrstrStandard error from the code execution.
returncodeintExit code from the execution (0 = success, non-zero = error).
codestrThe original code that was executed.
languagestrThe language that was executed ("python" or "javascript").
Examples
Basic Example
from concave import Sandbox
sbx = Sandbox.create()
result = sbx.run("print('Hello from Python!')")
print(result.stdout) # Hello from Python!
sbx.delete()JavaScript Code
from concave import Sandbox
sbx = Sandbox.create()
result = sbx.run(
"console.log('Hello from Node.js!')",
language="javascript"
)
print(result.stdout) # Hello from Node.js!
sbx.delete()Node.js is slower than Python in our benchmarks. Prefer language="python" for performance.
Multi-Line Code
from concave import Sandbox
sbx = Sandbox.create()
code = """
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10))
"""
result = sbx.run(code)
print(result.stdout) # 55
sbx.delete()Error Handling
from concave import Sandbox
sbx = Sandbox.create()
result = sbx.run("print(1/0)")
if result.returncode != 0:
print(f"Error: {result.stderr}")
else:
print(result.stdout)
sbx.delete()Streaming Output
from concave import Sandbox
sbx = Sandbox.create()
def on_event(event: dict):
if event["type"] == "stdout":
print(f"[OUT] {event['data']}")
elif event["type"] == "stderr":
print(f"[ERR] {event['data']}")
elif event["type"] == "exit":
print(f"[EXIT] code={event['code']}")
code = """
import time
for i in range(5):
print(f"Processing step {i+1}/5")
time.sleep(1)
print("Complete!")
"""
# Stream output in real-time as code executes
result = sbx.run(code, streaming=True, callback=on_event)
print(f"\nFinal output:\n{result.stdout}")
sbx.delete()Long-Running Task with Progress
from concave import Sandbox
import time
sbx = Sandbox.create()
start_time = time.time()
progress_lines = []
def on_progress(event: dict):
elapsed = time.time() - start_time
if event["type"] == "stdout":
progress_lines.append(event["data"])
print(f"[{elapsed:.1f}s] {event['data']}")
code = """
import sys
import time
# Simulate data processing
for i in range(10):
print(f"Processing batch {i+1}/10...")
sys.stdout.flush()
time.sleep(0.5)
print("Processing complete!")
"""
result = sbx.run(
code,
streaming=True,
callback=on_progress,
timeout=60000 # 1 minute
)
print(f"\nProcessed {len(progress_lines)} status updates")
print(f"Exit code: {result.returncode}")
sbx.delete()Exceptions
SandboxValidationErrorExceptionRaised when the code is empty or language is unsupported (only "python" and "javascript" are supported).
SandboxNotFoundErrorExceptionRaised when the sandbox no longer exists.
SandboxTimeoutErrorExceptionRaised when code execution exceeds the timeout duration.
SandboxConnectionErrorExceptionRaised when unable to connect to the sandbox service.