Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
8 changes: 4 additions & 4 deletions .castiron.stats.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
schema_version: 1
generation_id: bb452d19-8d5f-4013-bfd3-3edecb25c37e
generation_id: e5b5d7d9-1b97-4d6a-a1ca-8cd00ff2fa0b
openapi_spec_hash: 72d34e76f62e434dc0b71e0b4ac0ce8a
openapi_transformed_spec_hash: bca4c6179df519f310841c4730b72c18
config_hash: 8a49d8603252fe24c2dc96f50eb0d05b
codegen_sha: 016ee2b2da744118cf209752f57c8616ad20b842
codegen_hash: 82cc4b7aca374db5d389b1ac06369a1ffa5946795a9ab86c87f57a5f5ec00390
public_codegen_sha: e23db4894b46c4da1d4d9625eb0876d0ab512e78
codegen_sha: 865a21f405fcf114702b18a248a26dd5ae716da5
codegen_hash: 3b7d96954238e7ffaf3fd7e28623a73939510e435fb58ef4c9a3914be6f857fb
public_codegen_sha: d60ab2223decd81f675989eed4b14fa5363ad9a9
16 changes: 8 additions & 8 deletions scripts/castiron/generated-files.json
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@
},
"src/openai/resources/beta/responses/responses.py": {
"mode": "100644",
"sha256": "e631b84ca7b00615a9e2f232d45747ec39f284ffa1ceb71517032e969bb386bb"
"sha256": "c7e705185228ea5a1662dc0fe569e0c16bb7eadf38beff925f6067643d98feb6"
},
"src/openai/resources/beta/threads/__init__.py": {
"mode": "100644",
Expand Down Expand Up @@ -591,19 +591,19 @@
},
"src/openai/resources/live/forks.py": {
"mode": "100644",
"sha256": "f3395e5c09d1e690b3c4fd0e2adf04990362e217df3b1ab2a046657d6e1b54b2"
"sha256": "ff834c298a4566869e81e769be92bcbed216510557ff4eb344fd840bab2f2cd5"
},
"src/openai/resources/live/live.py": {
"mode": "100644",
"sha256": "472c140e576cb42c4965e1f623fc7b29e50b01dae6b474c2e9db2f0190289f40"
"sha256": "a0ae2ae3eaaeccf152edca7999656be8cf10e5da49fc6335d479d71ba259b30d"
},
"src/openai/resources/live/sessions.py": {
"mode": "100644",
"sha256": "9ba2d59d9c7498c96ac2e7e48660c91468e0eeb5df881e77f123ee37985c3dfd"
},
"src/openai/resources/live/sideband.py": {
"mode": "100644",
"sha256": "073e10b3edc936de7d35776069354c4272a9d7636070cb3ce4804dca978915f5"
"sha256": "37028100a5301b90b58cb6ed4ea2e20e0277fa476796d5d932cf848ad2a294c1"
},
"src/openai/resources/models.py": {
"mode": "100644",
Expand Down Expand Up @@ -631,7 +631,7 @@
},
"src/openai/resources/realtime/realtime.py": {
"mode": "100644",
"sha256": "a1af3c8791a4f29b66e3401348b6c6dea6dc658a8a6bb88843cdb30b4626119c"
"sha256": "29cf5fe34140d2f985151b264d3438897ed1579d7db1ef523a5831dd89ac7936"
},
"src/openai/resources/realtime/translations/__init__.py": {
"mode": "100644",
Expand All @@ -643,7 +643,7 @@
},
"src/openai/resources/realtime/translations/translations.py": {
"mode": "100644",
"sha256": "0da275b10d6f42a82cc83dde4ed659efc7b75ce1d8191365c22a3914fbb840e4"
"sha256": "2ed29f4fa975a92d0067c7c28e30fefad8070fc4bd6a7b35ff124b0bbaeb94b5"
},
"src/openai/resources/responses/__init__.py": {
"mode": "100644",
Expand All @@ -663,7 +663,7 @@
},
"src/openai/resources/responses/responses.py": {
"mode": "100644",
"sha256": "2239f2e9fe19aa019d2580a0f74a5d2efcedc2c284650ee1c2567af334a045e6"
"sha256": "77b3bd59e28c76c8c54d21d556718d30d6be437f1b19507e40e3708a24986e77"
},
"src/openai/resources/safety/__init__.py": {
"mode": "100644",
Expand Down Expand Up @@ -755,7 +755,7 @@
},
"src/openai/types/__init__.py": {
"mode": "100644",
"sha256": "5caaa29a79510a0a3e4a92f7b59d3ccb3f8f6651706f658738cb5e2a22b91481"
"sha256": "47c98e4ffd0eb3a28a9d60b78facf0bdd165d6d35b24ebb6bea5834a0165eeea"
},
"src/openai/types/admin/__init__.py": {
"mode": "100644",
Expand Down
4 changes: 2 additions & 2 deletions src/openai/lib/realtime_translation.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
RealtimeTranslationClientEventParam,
RealtimeTranslationSessionClosedEvent,
)
from ..types.websocket_connection_options import WebSocketConnectionOptions
from ..types.websocket_connection_options import WebSocketConnectionOptions, SyncWebSocketConnectionOptions

__all__ = ["TranslationSession", "AsyncTranslationSession", "TranslationConnection", "AsyncTranslationConnection"]

Expand Down Expand Up @@ -158,7 +158,7 @@ def __init__(
model: str,
extra_query: Query = {},
extra_headers: Headers = {},
websocket_connection_options: WebSocketConnectionOptions = {},
websocket_connection_options: SyncWebSocketConnectionOptions = {},
) -> None:
self._resource = resource
self._client = resource._client
Expand Down
4 changes: 4 additions & 0 deletions src/openai/resources/beta/realtime/realtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,8 @@ async def __aenter__(self) -> AsyncRealtimeConnection:
log.debug("Custom WebSocket connection options provided")

options: WebsocketConnectionOptions = {"max_size": None, **self.__websocket_connection_options}
if options["max_size"] is None:
options.setdefault("compression", None)
self.__connection = AsyncRealtimeConnection(
await connect(
str(url),
Expand Down Expand Up @@ -577,6 +579,8 @@ def __enter__(self) -> RealtimeConnection:
log.debug("Custom WebSocket connection options provided")

options: SyncWebSocketConnectionOptions = {"max_size": None, **self.__websocket_connection_options}
if options["max_size"] is None:
options.setdefault("compression", None)
self.__connection = RealtimeConnection(
connect(
str(url),
Expand Down
90 changes: 59 additions & 31 deletions src/openai/resources/beta/responses/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
from ....types.beta.beta_service_tier import BetaServiceTier
from ....types.websocket_reconnection import ReconnectingEvent, ReconnectingOverrides
from ....types.beta.beta_compacted_response import BetaCompactedResponse
from ....types.websocket_connection_options import WebSocketConnectionOptions
from ....types.websocket_connection_options import WebSocketConnectionOptions, SyncWebSocketConnectionOptions
from ....types.beta.beta_response_includable import BetaResponseIncludable
from ....types.beta.beta_response_input_param import BetaResponseInputParam
from ....types.beta.beta_response_prompt_param import BetaResponsePromptParam
Expand Down Expand Up @@ -2069,7 +2069,7 @@ def connect(
self,
extra_query: Query = {},
extra_headers: Headers = {},
websocket_connection_options: WebSocketConnectionOptions = {},
websocket_connection_options: SyncWebSocketConnectionOptions = {},
on_reconnecting: Callable[[ReconnectingEvent], ReconnectingOverrides | None] | None = None,
max_retries: int = 5,
initial_delay: float = 0.5,
Expand Down Expand Up @@ -4545,20 +4545,29 @@ async def __aenter__(self) -> AsyncResponsesConnection:
"""
ws = await self._connect_ws(self.__extra_query, self.__extra_headers)

self.__connection = AsyncResponsesConnection(
ws,
make_ws=self._connect_ws if self.__on_reconnecting is not None else None,
on_reconnecting=self.__on_reconnecting,
max_retries=self.__max_retries,
initial_delay=self.__initial_delay,
max_delay=self.__max_delay,
extra_query=self.__extra_query,
extra_headers=self.__extra_headers,
send_queue=self.__send_queue,
)
try:
self.__connection = AsyncResponsesConnection(
ws,
make_ws=self._connect_ws if self.__on_reconnecting is not None else None,
on_reconnecting=self.__on_reconnecting,
max_retries=self.__max_retries,
initial_delay=self.__initial_delay,
max_delay=self.__max_delay,
extra_query=self.__extra_query,
extra_headers=self.__extra_headers,
send_queue=self.__send_queue,
)

self.__event_handler_registry.merge_into(self.__connection._event_handler_registry)
await self.__connection._flush_send_queue()
self.__event_handler_registry.merge_into(self.__connection._event_handler_registry)
await self.__connection._flush_send_queue()
except BaseException:
self.__connection = None
try:
await ws.close()
except BaseException:
# Preserve the exception that prevented successful entry.
pass
raise

return self.__connection

Expand Down Expand Up @@ -4603,11 +4612,16 @@ async def _connect_ws(self, extra_query: Query, extra_headers: Headers) -> Async
if self.__websocket_connection_options:
log.debug("Custom WebSocket connection options provided")

websocket_options = self.__websocket_connection_options.copy()
websocket_options.setdefault("max_size", None)
if websocket_options.get("max_size") is None:
websocket_options.setdefault("compression", None)

return await connect(
str(url),
user_agent_header=None,
additional_headers=_merge_mappings(dict(headers.values()), {}),
**self.__websocket_connection_options,
**websocket_options,
)

def _prepare_url(self) -> httpx2.URL:
Expand Down Expand Up @@ -4851,7 +4865,7 @@ def __init__(
client: OpenAI,
extra_query: Query,
extra_headers: Headers,
websocket_connection_options: WebSocketConnectionOptions,
websocket_connection_options: SyncWebSocketConnectionOptions,
on_reconnecting: Callable[[ReconnectingEvent], ReconnectingOverrides | None] | None = None,
max_retries: int = 5,
initial_delay: float = 0.5,
Expand Down Expand Up @@ -4935,20 +4949,29 @@ def __enter__(self) -> ResponsesConnection:
"""
ws = self._connect_ws(self.__extra_query, self.__extra_headers)

self.__connection = ResponsesConnection(
ws,
make_ws=self._connect_ws if self.__on_reconnecting is not None else None,
on_reconnecting=self.__on_reconnecting,
max_retries=self.__max_retries,
initial_delay=self.__initial_delay,
max_delay=self.__max_delay,
extra_query=self.__extra_query,
extra_headers=self.__extra_headers,
send_queue=self.__send_queue,
)
try:
self.__connection = ResponsesConnection(
ws,
make_ws=self._connect_ws if self.__on_reconnecting is not None else None,
on_reconnecting=self.__on_reconnecting,
max_retries=self.__max_retries,
initial_delay=self.__initial_delay,
max_delay=self.__max_delay,
extra_query=self.__extra_query,
extra_headers=self.__extra_headers,
send_queue=self.__send_queue,
)

self.__event_handler_registry.merge_into(self.__connection._event_handler_registry)
self.__connection._flush_send_queue()
self.__event_handler_registry.merge_into(self.__connection._event_handler_registry)
self.__connection._flush_send_queue()
except BaseException:
self.__connection = None
try:
ws.close()
except BaseException:
# Preserve the exception that prevented successful entry.
pass
raise

return self.__connection

Expand Down Expand Up @@ -4993,11 +5016,16 @@ def _connect_ws(self, extra_query: Query, extra_headers: Headers) -> WebSocketCo
if self.__websocket_connection_options:
log.debug("Custom WebSocket connection options provided")

websocket_options = self.__websocket_connection_options.copy()
websocket_options.setdefault("max_size", None)
if websocket_options.get("max_size") is None:
websocket_options.setdefault("compression", None)

return connect(
str(url),
user_agent_header=None,
additional_headers=_merge_mappings(dict(headers.values()), {}),
**self.__websocket_connection_options,
**websocket_options,
)

def _prepare_url(self) -> httpx2.URL:
Expand Down
Loading
Loading