Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
fixes for support class
  • Loading branch information
tode-rl committed May 13, 2026
commit ec20e2a6d23980e3098c69d6aa7a9c27254ef4d1
16 changes: 8 additions & 8 deletions src/runloop_api_client/resources/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .pty import (
PtyResource,
AsyncPtyResource,
PtyResourceWithRawResponse,
AsyncPtyResourceWithRawResponse,
PtyResourceWithStreamingResponse,
AsyncPtyResourceWithStreamingResponse,
)
from .axons import (
AxonsResource,
AsyncAxonsResource,
Expand All @@ -24,14 +32,6 @@
ApikeysResourceWithStreamingResponse,
AsyncApikeysResourceWithStreamingResponse,
)
from .pty import (
PtyResource,
AsyncPtyResource,
PtyResourceWithRawResponse,
AsyncPtyResourceWithRawResponse,
PtyResourceWithStreamingResponse,
AsyncPtyResourceWithStreamingResponse,
)
from .objects import (
ObjectsResource,
AsyncObjectsResource,
Expand Down
4 changes: 2 additions & 2 deletions src/runloop_api_client/sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from __future__ import annotations

from .pty import DevboxPtyOps, DevboxPtyProcess, DevboxPtySession
from .axon import Axon, AxonSqlOps
from .sync import (
AxonOps,
Expand Down Expand Up @@ -41,19 +42,18 @@
AsyncStorageObjectOps,
)
from .devbox import Devbox, NamedShell
from .pty import DevboxPtyOps, DevboxPtySession, DevboxPtyProcess
from .scorer import Scorer
from .secret import Secret
from .scenario import Scenario
from .snapshot import Snapshot
from .async_pty import AsyncDevboxPtyOps, AsyncDevboxPtyProcess, AsyncDevboxPtySession
from .benchmark import Benchmark
from .blueprint import Blueprint
from .execution import Execution
from .async_axon import AsyncAxon, AsyncAxonSqlOps
from .mcp_config import McpConfig
from .async_agent import AsyncAgent
from .async_devbox import AsyncDevbox, AsyncNamedShell
from .async_pty import AsyncDevboxPtyOps, AsyncDevboxPtySession, AsyncDevboxPtyProcess
from .async_scorer import AsyncScorer
from .async_secret import AsyncSecret
from .scenario_run import ScenarioRun
Expand Down
24 changes: 12 additions & 12 deletions src/runloop_api_client/sdk/async_pty.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import codecs
import asyncio
import inspect
from typing import Any, Union, Callable, Awaitable, AsyncIterator
from typing import Any, Union, Callable, Awaitable, AsyncIterator, cast
from importlib import import_module
from urllib.parse import urljoin, urlparse, urlunparse

Expand Down Expand Up @@ -247,8 +247,8 @@ async def _send(self, payload: bytes) -> None:
async def _recv(self) -> bytes | str | None:
recv = getattr(self._ws, "recv", None)
if recv is None:
return await self._ws.receive()
return await recv()
return cast(Union[bytes, str, None], await self._ws.receive())
return cast(Union[bytes, str, None], await recv())

async def _close_websocket(self) -> None:
close = getattr(self._ws, "close", None)
Expand All @@ -261,7 +261,7 @@ async def _read_loop(self) -> None:
try:
while True:
data = await self._recv()
if data in (None, b"", ""):
if data is None or data == b"" or data == "":
break
chunk = data.encode("utf-8") if isinstance(data, str) else bytes(data)
await self._emit(chunk)
Expand All @@ -273,12 +273,12 @@ async def _read_loop(self) -> None:

async def _emit(self, chunk: bytes) -> None:
await self._queue.put(chunk)
for callback in list(self._raw_callbacks):
await _maybe_await(callback(chunk))
for raw_callback in list(self._raw_callbacks):
await _maybe_await(raw_callback(chunk))
text = self._decoder.decode(chunk)
if text:
for callback in list(self._text_callbacks):
await _maybe_await(callback(text))
for text_callback in list(self._text_callbacks):
await _maybe_await(text_callback(text))


class AsyncDevboxPtyProcess:
Expand Down Expand Up @@ -384,9 +384,9 @@ async def _publish(self, chunk: bytes) -> None:
if not chunk:
return
await self._queue.put(chunk)
for callback in list(self._raw_callbacks):
await _maybe_await(callback(chunk))
for raw_callback in list(self._raw_callbacks):
await _maybe_await(raw_callback(chunk))
text = self._decoder.decode(chunk)
if text:
for callback in list(self._text_callbacks):
await _maybe_await(callback(text))
for text_callback in list(self._text_callbacks):
await _maybe_await(text_callback(text))
16 changes: 8 additions & 8 deletions src/runloop_api_client/sdk/pty.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,12 +245,12 @@ def _read_loop(self) -> None:

def _emit(self, chunk: bytes) -> None:
self._queue.put(chunk)
for callback in list(self._raw_callbacks):
callback(chunk)
for raw_callback in list(self._raw_callbacks):
raw_callback(chunk)
text = self._decoder.decode(chunk)
if text:
for callback in list(self._text_callbacks):
callback(text)
for text_callback in list(self._text_callbacks):
text_callback(text)


class DevboxPtyProcess:
Expand Down Expand Up @@ -346,9 +346,9 @@ def _publish(self, chunk: bytes) -> None:
if not chunk:
return
self._queue.put(chunk)
for callback in list(self._raw_callbacks):
callback(chunk)
for raw_callback in list(self._raw_callbacks):
raw_callback(chunk)
text = self._decoder.decode(chunk)
if text:
for callback in list(self._text_callbacks):
callback(text)
for text_callback in list(self._text_callbacks):
text_callback(text)
6 changes: 3 additions & 3 deletions src/runloop_api_client/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
from .object_view import ObjectView as ObjectView
from .secret_view import SecretView as SecretView
from .tunnel_view import TunnelView as TunnelView
from .pty_connect_view import PtyConnectView as PtyConnectView
from .input_context import InputContext as InputContext
from .scenario_view import ScenarioView as ScenarioView
from .axon_list_view import AxonListView as AxonListView
Expand All @@ -31,6 +30,7 @@
from .axon_list_params import AxonListParams as AxonListParams
from .devbox_list_view import DevboxListView as DevboxListView
from .object_list_view import ObjectListView as ObjectListView
from .pty_connect_view import PtyConnectView as PtyConnectView
from .scope_entry_view import ScopeEntryView as ScopeEntryView
from .scoring_contract import ScoringContract as ScoringContract
from .scoring_function import ScoringFunction as ScoringFunction
Expand All @@ -42,6 +42,8 @@
from .benchmark_run_view import BenchmarkRunView as BenchmarkRunView
from .devbox_list_params import DevboxListParams as DevboxListParams
from .object_list_params import ObjectListParams as ObjectListParams
from .pty_connect_params import PtyConnectParams as PtyConnectParams
from .pty_control_params import PtyControlParams as PtyControlParams
from .secret_list_params import SecretListParams as SecretListParams
from .agent_create_params import AgentCreateParams as AgentCreateParams
from .axon_publish_params import AxonPublishParams as AxonPublishParams
Expand Down Expand Up @@ -108,8 +110,6 @@
from .benchmark_job_create_params import BenchmarkJobCreateParams as BenchmarkJobCreateParams
from .devbox_download_file_params import DevboxDownloadFileParams as DevboxDownloadFileParams
from .devbox_enable_tunnel_params import DevboxEnableTunnelParams as DevboxEnableTunnelParams
from .pty_connect_params import PtyConnectParams as PtyConnectParams
from .pty_control_params import PtyControlParams as PtyControlParams
from .devbox_execute_async_params import DevboxExecuteAsyncParams as DevboxExecuteAsyncParams
from .devbox_snapshot_disk_params import DevboxSnapshotDiskParams as DevboxSnapshotDiskParams
from .restricted_key_created_view import RestrictedKeyCreatedView as RestrictedKeyCreatedView
Expand Down
Loading