Skip to content

Commit 0f6f376

Browse files
improved logic for flattening session settings query params
1 parent 3a0a1b6 commit 0f6f376

File tree

2 files changed

+18
-48
lines changed

2 files changed

+18
-48
lines changed

src/hume/empathic_voice/chat/client.py

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
1515
from ...core.request_options import RequestOptions
1616
from ...core.serialization import convert_and_respect_annotation_metadata
17+
from ...core.query_encoder import single_query_encoder
1718
from ..types.connect_session_settings import ConnectSessionSettings
1819
from .raw_client import AsyncRawChatClient, RawChatClient
1920
from .socket_client import AsyncChatSocketClient, ChatSocketClient, ChatConnectOptions
@@ -147,18 +148,10 @@ def connect(
147148
query_params = query_params.add("verbose_transcription", verbose_transcription)
148149
if api_key is not None:
149150
query_params = query_params.add("api_key", api_key)
150-
if (
151-
convert_and_respect_annotation_metadata(
152-
object_=session_settings, annotation=ConnectSessionSettings, direction="write"
153-
)
154-
is not None
155-
):
156-
query_params = query_params.add(
157-
"session_settings",
158-
convert_and_respect_annotation_metadata(
159-
object_=session_settings, annotation=ConnectSessionSettings, direction="write"
160-
),
161-
)
151+
if session_settings is not None:
152+
flattened_params = single_query_encoder("session_settings", session_settings)
153+
for param_key, param_value in flattened_params:
154+
query_params = query_params.add(param_key, str(param_value))
162155
ws_url = ws_url + f"?{query_params}"
163156
headers = self._raw_client._client_wrapper.get_headers()
164157
if request_options and "additional_headers" in request_options:
@@ -287,18 +280,10 @@ async def connect(
287280
query_params = query_params.add("verbose_transcription", verbose_transcription)
288281
if api_key is not None:
289282
query_params = query_params.add("api_key", api_key)
290-
if (
291-
convert_and_respect_annotation_metadata(
292-
object_=session_settings, annotation=ConnectSessionSettings, direction="write"
293-
)
294-
is not None
295-
):
296-
query_params = query_params.add(
297-
"session_settings",
298-
convert_and_respect_annotation_metadata(
299-
object_=session_settings, annotation=ConnectSessionSettings, direction="write"
300-
),
301-
)
283+
if session_settings is not None:
284+
flattened_params = single_query_encoder("session_settings", session_settings)
285+
for param_key, param_value in flattened_params:
286+
query_params = query_params.add(param_key, str(param_value))
302287
ws_url = ws_url + f"?{query_params}"
303288
headers = self._raw_client._client_wrapper.get_headers()
304289
if request_options and "additional_headers" in request_options:

src/hume/empathic_voice/chat/raw_client.py

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
1111
from ...core.request_options import RequestOptions
1212
from ...core.serialization import convert_and_respect_annotation_metadata
13+
from ...core.query_encoder import single_query_encoder
1314
from ..types.connect_session_settings import ConnectSessionSettings
1415
from .socket_client import AsyncChatSocketClient, ChatSocketClient
1516

@@ -114,18 +115,10 @@ def connect(
114115
query_params = query_params.add("verbose_transcription", verbose_transcription)
115116
if api_key is not None:
116117
query_params = query_params.add("api_key", api_key)
117-
if (
118-
convert_and_respect_annotation_metadata(
119-
object_=session_settings, annotation=ConnectSessionSettings, direction="write"
120-
)
121-
is not None
122-
):
123-
query_params = query_params.add(
124-
"session_settings",
125-
convert_and_respect_annotation_metadata(
126-
object_=session_settings, annotation=ConnectSessionSettings, direction="write"
127-
),
128-
)
118+
if session_settings is not None:
119+
flattened_params = single_query_encoder("session_settings", session_settings)
120+
for param_key, param_value in flattened_params:
121+
query_params = query_params.add(param_key, str(param_value))
129122
ws_url = ws_url + f"?{query_params}"
130123
headers = self._client_wrapper.get_headers()
131124
if request_options and "additional_headers" in request_options:
@@ -243,18 +236,10 @@ async def connect(
243236
query_params = query_params.add("verbose_transcription", verbose_transcription)
244237
if api_key is not None:
245238
query_params = query_params.add("api_key", api_key)
246-
if (
247-
convert_and_respect_annotation_metadata(
248-
object_=session_settings, annotation=ConnectSessionSettings, direction="write"
249-
)
250-
is not None
251-
):
252-
query_params = query_params.add(
253-
"session_settings",
254-
convert_and_respect_annotation_metadata(
255-
object_=session_settings, annotation=ConnectSessionSettings, direction="write"
256-
),
257-
)
239+
if session_settings is not None:
240+
flattened_params = single_query_encoder("session_settings", session_settings)
241+
for param_key, param_value in flattened_params:
242+
query_params = query_params.add(param_key, str(param_value))
258243
ws_url = ws_url + f"?{query_params}"
259244
headers = self._client_wrapper.get_headers()
260245
if request_options and "additional_headers" in request_options:

0 commit comments

Comments
 (0)