Skip to content

Commit 180feac

Browse files
committed
Add API attributes
1 parent 40399dd commit 180feac

2 files changed

Lines changed: 24 additions & 12 deletions

File tree

src/elevenlabs/speech_engine/resource.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from .server import SpeechEngineServer
1212
from .session import SpeechEngineSession
1313
from .types import WebSocketLike
14+
from ..types.speech_engine_response import SpeechEngineResponse
1415

1516
logger = logging.getLogger("elevenlabs.speech_engine")
1617

@@ -114,12 +115,17 @@ async def on_transcript(transcript, session):
114115

115116
def __init__(
116117
self,
117-
engine_id: str,
118+
id: str,
118119
client_wrapper: typing.Any = None,
120+
response: typing.Optional[SpeechEngineResponse] = None,
119121
) -> None:
120-
self.engine_id = engine_id
122+
self.id = id
121123
self._client_wrapper = client_wrapper
122124

125+
# Full API response, accessible as engine.config.asr, engine.config.overrides, etc.
126+
# None when the resource is constructed directly without an API call.
127+
self.config: typing.Optional[SpeechEngineResponse] = response
128+
123129
def _get_api_key(self) -> typing.Optional[str]:
124130
if self._client_wrapper is None:
125131
return None

src/elevenlabs/speech_engine_custom.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ def create( # type: ignore[override]
5555
request_options=request_options,
5656
)
5757
return SpeechEngineResource(
58-
engine_id=response.speech_engine_id,
58+
id=response.speech_engine_id,
5959
client_wrapper=self._raw_client._client_wrapper,
60+
response=response,
6061
)
6162

6263
def get( # type: ignore[override]
@@ -73,10 +74,11 @@ def get( # type: ignore[override]
7374
:meth:`~SpeechEngineResource.create_session`,
7475
:meth:`~SpeechEngineResource.verify_request`).
7576
"""
76-
super().get(speech_engine_id, request_options=request_options)
77+
response = super().get(speech_engine_id, request_options=request_options)
7778
return SpeechEngineResource(
78-
engine_id=speech_engine_id,
79+
id=speech_engine_id,
7980
client_wrapper=self._raw_client._client_wrapper,
81+
response=response,
8082
)
8183

8284
def update( # type: ignore[override]
@@ -103,7 +105,7 @@ def update( # type: ignore[override]
103105
:meth:`~SpeechEngineResource.create_session`,
104106
:meth:`~SpeechEngineResource.verify_request`).
105107
"""
106-
super().update(
108+
response = super().update(
107109
speech_engine_id,
108110
name=name,
109111
speech_engine=speech_engine,
@@ -118,8 +120,9 @@ def update( # type: ignore[override]
118120
request_options=request_options,
119121
)
120122
return SpeechEngineResource(
121-
engine_id=speech_engine_id,
123+
id=speech_engine_id,
122124
client_wrapper=self._raw_client._client_wrapper,
125+
response=response,
123126
)
124127

125128

@@ -163,8 +166,9 @@ async def create( # type: ignore[override]
163166
request_options=request_options,
164167
)
165168
return SpeechEngineResource(
166-
engine_id=response.speech_engine_id,
169+
id=response.speech_engine_id,
167170
client_wrapper=self._raw_client._client_wrapper,
171+
response=response,
168172
)
169173

170174
async def get( # type: ignore[override]
@@ -181,10 +185,11 @@ async def get( # type: ignore[override]
181185
:meth:`~SpeechEngineResource.create_session`,
182186
:meth:`~SpeechEngineResource.verify_request`).
183187
"""
184-
await super().get(speech_engine_id, request_options=request_options)
188+
response = await super().get(speech_engine_id, request_options=request_options)
185189
return SpeechEngineResource(
186-
engine_id=speech_engine_id,
190+
id=speech_engine_id,
187191
client_wrapper=self._raw_client._client_wrapper,
192+
response=response,
188193
)
189194

190195
async def update( # type: ignore[override]
@@ -211,7 +216,7 @@ async def update( # type: ignore[override]
211216
:meth:`~SpeechEngineResource.create_session`,
212217
:meth:`~SpeechEngineResource.verify_request`).
213218
"""
214-
await super().update(
219+
response = await super().update(
215220
speech_engine_id,
216221
name=name,
217222
speech_engine=speech_engine,
@@ -226,6 +231,7 @@ async def update( # type: ignore[override]
226231
request_options=request_options,
227232
)
228233
return SpeechEngineResource(
229-
engine_id=speech_engine_id,
234+
id=speech_engine_id,
230235
client_wrapper=self._raw_client._client_wrapper,
236+
response=response,
231237
)

0 commit comments

Comments
 (0)