- Updated dependencies [a8155c4]
- @e2b/python-sdk@2.63.0
- Updated dependencies [48d24ac]
- Updated dependencies [1ad3f76]
- @e2b/python-sdk@2.62.1
- 8cc9ed1: Document the
Resultfields in the reference, including thatpng,jpegandpdfare base64-encoded, and thatlogs.stdout,logs.stderrandOutputMessage.linehold raw chunks with newlines kept; use''.join(execution.logs.stdout)to rebuild the output.
- Updated dependencies [9fdfa21]
- Updated dependencies [d58ef55]
- @e2b/python-sdk@2.62.0
- Updated dependencies [bea0fe6]
- @e2b/python-sdk@2.61.0
- Updated dependencies [451a696]
- Updated dependencies [e514999]
- @e2b/python-sdk@2.60.0
- Updated dependencies [5a714f0]
- Updated dependencies [e5a9fa6]
- Updated dependencies [61b6b55]
- Updated dependencies [2cd2305]
- @e2b/python-sdk@2.59.0
- d7ed073: Remove Python 3.10 compatibility shims (Python >=3.11 is already required).
- Updated dependencies [d7ed073]
- Updated dependencies [3c4c7cf]
- @e2b/python-sdk@2.58.0
- Updated dependencies [f572bc7]
- Updated dependencies [a1ad326]
- Updated dependencies [999782e]
- @e2b/python-sdk@2.57.0
- 547decc: Require Python 3.11 or newer (Python 3.10 is no longer supported).
- Updated dependencies [547decc]
- Updated dependencies [775f017]
- @e2b/python-sdk@2.56.0
- 29064bc: Require
e2b>=2.55.1, the first release withget_sandbox_url(..., port=). 2.10.4 failed withTypeError: ... unexpected keyword argument 'port'when installed with e2b 2.55.0. - Updated dependencies [29064bc]
- @e2b/python-sdk@2.55.1
- 0ad4ec1: Send Code Interpreter requests through the unified sandbox endpoint (
sandbox.<domain>) on supported domains, like the rest of the SDK. Browsers (JS) and other domains keep using the per-port sandbox host.
- cd4c62b: Publish the changes from the previous release, which was versioned but failed to publish to npm and PyPI.
-
b3bb653: Remove the
E2B_USER_AGENT_SOURCEenvironment variable. The SDKs no longer add asource/<value>User-Agent token, append?source=to Code Interpreter requests, or log trace IDs and add(trace_id=…)to error messages when it is set toci, so SDK behavior no longer depends on that variable.Code Interpreter errors for statuses other than 404 and 502 now use the same
<status> <reason>[: <body>]message in JS and Python: JS includes the response body, and Python falls back to the reason phrase when the body is empty.
- 2f92cc3: Pin the Jupyter transport to HTTP/1.1 with
get_transport(config, http_version="1.1"), following the renamed argument ine2b2.52.0 (now the minimum supported version).
- 390a1bf: Add an
E2Bclient to the Code Interpreter SDKs that binds the connection configuration explicitly, so the API key and domain no longer have to come from the environment variables:new E2B({ apiKey, domain }).Sandbox.create()in JavaScript andE2B(api_key=..., domain=...).Sandbox.create()in Python. The client exposes the package's ownSandbox(andAsyncSandboxin Python) together with the coreVolume,TemplateandSecretresources, per-call options still take precedence, and multiple clients are isolated from each other and from the env-configured top-level exports.
- 5a56c87: Bump past 2.9.2, which was already published to PyPI from the pre-migration e2b-dev/code-interpreter repository with different file contents, causing
uv publish --check-urlto fail during release.
- e1532e9: Move the Code Interpreter and Desktop JavaScript and Python SDKs into the E2B monorepo.
-
8d0a81b: Bump E2B SDK dependency: JavaScript to 2.39.0, Python to 2.39.1.
The Python floor is 2.39.1 specifically: e2b 2.38.0 moved the SDK's HTTP stack onto
pyqwestand dropped thehttp2parameter that Jupyter requests rely on to pin HTTP/1.1, so any e2b in>=2.38.0, <2.39.1raisesTypeErroron every code execution. 2.39.1 restores it.Also fixes
run_code'stimeoutin the Python SDK. The new transport collapses httpx's per-phase timeouts into a single whole-request deadline and takes the longest phase, so passingtimeoutas the read timeout alongsiderequest_timeouton the write and pool phases made the effective deadlinemax(timeout, request_timeout)— anytimeoutshorter thanrequest_timeout(60s by default) was ignored and the execution ran on untilrequest_timeout.timeoutnow bounds the request on its own, andtimeout=0disables the deadline instead of inheriting the connect timeout.