diff --git a/docs.json b/docs.json index 499306a..fdb8f5c 100644 --- a/docs.json +++ b/docs.json @@ -60,6 +60,7 @@ ] }, "docs/code-interpreting/streaming", + "docs/code-interpreting/contexts", { "group": "Supported languages", "pages": [ diff --git a/docs/code-interpreting/contexts.mdx b/docs/code-interpreting/contexts.mdx new file mode 100644 index 0000000..8834e2b --- /dev/null +++ b/docs/code-interpreting/contexts.mdx @@ -0,0 +1,141 @@ +--- +title: "Code Contexts" +--- + +Run code in different code execution contexts with E2B Code Interpreter SDK. This allows you to parallelize code execution by running code in different contexts at the same time. + +By default the code is run in the Sandbox's default code execution context. You can change it by passing the `context` parameter to the `runCode()` method in JavaScript or `run_code()` in Python. + +## Create a new Code Context + +You can create a new code execution context by calling the `createCodeContext()` method in JavaScript or `create_code_context()` in Python and passing the context parameters. + + +```js JavaScript & TypeScript +import { Sandbox } from '@e2b/code-interpreter' + +const sandbox = await Sandbox.create() +const context = await sandbox.createCodeContext({ + cwd: '/home/user', + language: 'python', + requestTimeoutMs: 60_000, +}) + +const result = await sandbox.runCode('print("Hello, world!")', { context }) +console.log(result) +``` +```python Python +from e2b_code_interpreter import Sandbox + +sandbox = Sandbox.create() +context = sandbox.create_code_context( + cwd='/home/user', + language='python', + request_timeout=60_000, +) +result = sandbox.run_code('print("Hello, world!")', context=context) +print(result) +``` + + +## List active Code Contexts + +You can list active code execution contexts by calling the `listCodeContexts()` method in JavaScript or `list_code_contexts()` in Python. This will return a list of active code execution contexts. + + +```js JavaScript & TypeScript +import { Sandbox } from '@e2b/code-interpreter' + +const sandbox = await Sandbox.create() +const contexts = await sandbox.listCodeContexts() +console.log(contexts) +``` +```python Python +from e2b_code_interpreter import Sandbox + +sandbox = Sandbox.create() +contexts = sandbox.list_code_contexts() +print(contexts) +``` + + +## Restart a Code Context + +You can restart an active code execution context by calling the `restartCodeContext()` method in JavaScript or `restart_code_context()` in Python and passing the context object or context ID. +Restarting a context will clear its state and start a new code execution session in the same context. + + +```js JavaScript & TypeScript +import { Sandbox } from '@e2b/code-interpreter' + +const sandbox = await Sandbox.create() +const context = await sandbox.createCodeContext({ + cwd: '/home/user', + language: 'python', + requestTimeoutMs: 60_000, +}) + +// using context object +await sandbox.restartCodeContext(context) + +// using context ID +await sandbox.restartCodeContext(context.contextId) +``` +```python Python +from e2b_code_interpreter import Sandbox + +sandbox = Sandbox.create() +context = sandbox.create_code_context( + cwd='/home/user', + language='python', + request_timeout=60_000, +) + +# using context object +restarted_context = sandbox.restart_code_context(context) +print(restarted_context) + +# using context ID +restarted_context = sandbox.restart_code_context(context.contextId) +print(restarted_context) +``` + + +## Remove a Code Context + +You can remove an active code execution context by calling the `removeCodeContext()` method in JavaScript or `remove_code_context()` in Python and passing the context object or context ID. + + +```js JavaScript & TypeScript +import { Sandbox } from '@e2b/code-interpreter' + +const sandbox = await Sandbox.create() +const context = await sandbox.createCodeContext({ + cwd: '/home/user', + language: 'python', + requestTimeoutMs: 60_000, +}) + +// using context object +await sandbox.removeCodeContext(context) + +// using context ID +await sandbox.removeCodeContext(context.contextId) +``` +```python Python +from e2b_code_interpreter import Sandbox + +sandbox = Sandbox.create() +context = sandbox.create_code_context( + cwd='/home/user', + language='python', + request_timeout=60_000, +) + +# using context object +sandbox.remove_code_context(context) + +# using context ID +sandbox.remove_code_context(context.contextId) +``` + diff --git a/docs/code-interpreting/streaming.mdx b/docs/code-interpreting/streaming.mdx index 7120f94..9ca075c 100644 --- a/docs/code-interpreting/streaming.mdx +++ b/docs/code-interpreting/streaming.mdx @@ -2,7 +2,7 @@ title: "Streaming" --- -Use E2B SDK allows you to stream the output, and results when executing code in the sandbox. +E2B Code Interpreter SDK allows you to stream the output, and results when executing code in the sandbox. ## Stream `stdout` and `stderr`