import sys
from gravixlayer import GravixLayer
client = GravixLayer() # defaults to cloud="aws", region="us-east-1"
sandbox = client.runtime.create() # defaults to template="base-small"
session = sandbox.pty.create()
sid = session.session_id
for event in sandbox.pty.stream(sid):
if event["type"] == "data":
print(event["data"].decode("utf-8", "replace"), end="")
elif event["type"] == "exit":
print(f"\nsession exited: {event['exit_code']}")
elif event["type"] == "error":
print(f"\nstream error: {event['message']}")
# Or with callbacks
sandbox.pty.stream(
sid,
on_data=lambda b: sys.stdout.buffer.write(b),
on_exit=lambda code, status: print("exited", code, status),
)
sandbox.kill()