Examples
Basic Usage
Run code in a new CodeBox:
from codeboxapi import CodeBox
with CodeBox() as codebox:
  print(codebox.status())
  codebox.run("print('Hello World!')")
Run async code:
import asyncio
from codeboxapi import CodeBox
async def main():
  async with CodeBox() as codebox:
    await codebox.astatus()
    await codebox.arun("print('Hello World!')")
asyncio.run(main())
File IO
Upload and download files:
from codeboxapi import CodeBox
with CodeBox() as codebox:
  # Upload file
  codebox.upload("data.csv", b"1,2,3\
4,5,6")
  # List files
  print(codebox.list_files())
  # Download file
  data = codebox.download("data.csv")
  print(data.content)
Package Installation
Install packages into the CodeBox:
from codeboxapi import CodeBox
with CodeBox() as codebox:
  # Install packages
  codebox.install("pandas")
  codebox.install("matplotlib")
  # Use them
  codebox.run("import pandas as pd")
  codebox.run("import matplotlib.pyplot as plt")
Restoring Sessions
Restore a CodeBox session from its ID:
from codeboxapi import CodeBox
# Start CodeBox and save ID
codebox = CodeBox()
codebox.start()
session_id = codebox.session_id
#delete session
del session
# Restore session
codebox = CodeBox.from_id(session_id)
print(codebox.status())
Parallel Execution
Run multiple CodeBoxes in parallel:
import asyncio
from codeboxapi import CodeBox
async def main():
    await asyncio.gather(
        spawn_codebox() for _ in range(10)
    )
async def spawn_codebox():
    async with CodeBox() as codebox:
        print(await codebox.arun("print('Hello World!')"))
asyncio.run(main())