spitch 1.5.0__py3-none-any.whl → 1.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of spitch might be problematic. Click here for more details.
- spitch/_base_client.py +8 -1
- spitch/_version.py +1 -1
- spitch/resources/speech.py +15 -15
- spitch/types/__init__.py +1 -1
- spitch/types/speech_generate_params.py +1 -1
- spitch/types/speech_transcribe_params.py +18 -0
- {spitch-1.5.0.dist-info → spitch-1.7.0.dist-info}/METADATA +8 -1
- {spitch-1.5.0.dist-info → spitch-1.7.0.dist-info}/RECORD +10 -9
- {spitch-1.5.0.dist-info → spitch-1.7.0.dist-info}/WHEEL +0 -0
- {spitch-1.5.0.dist-info → spitch-1.7.0.dist-info}/licenses/LICENSE +0 -0
spitch/_base_client.py
CHANGED
|
@@ -143,6 +143,12 @@ class PageInfo:
|
|
|
143
143
|
self.url = url
|
|
144
144
|
self.params = params
|
|
145
145
|
|
|
146
|
+
@override
|
|
147
|
+
def __repr__(self) -> str:
|
|
148
|
+
if self.url:
|
|
149
|
+
return f"{self.__class__.__name__}(url={self.url})"
|
|
150
|
+
return f"{self.__class__.__name__}(params={self.params})"
|
|
151
|
+
|
|
146
152
|
|
|
147
153
|
class BasePage(GenericModel, Generic[_T]):
|
|
148
154
|
"""
|
|
@@ -689,7 +695,8 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
689
695
|
if retry_after is not None and 0 < retry_after <= 60:
|
|
690
696
|
return retry_after
|
|
691
697
|
|
|
692
|
-
|
|
698
|
+
# Also cap retry count to 1000 to avoid any potential overflows with `pow`
|
|
699
|
+
nb_retries = min(max_retries - remaining_retries, 1000)
|
|
693
700
|
|
|
694
701
|
# Apply exponential backoff, but not more than the max.
|
|
695
702
|
sleep_seconds = min(INITIAL_RETRY_DELAY * pow(2.0, nb_retries), MAX_RETRY_DELAY)
|
spitch/_version.py
CHANGED
spitch/resources/speech.py
CHANGED
|
@@ -7,7 +7,7 @@ from typing_extensions import Literal
|
|
|
7
7
|
|
|
8
8
|
import httpx
|
|
9
9
|
|
|
10
|
-
from ..types import speech_generate_params,
|
|
10
|
+
from ..types import speech_generate_params, speech_transcribe_params
|
|
11
11
|
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes
|
|
12
12
|
from .._utils import (
|
|
13
13
|
extract_files,
|
|
@@ -61,7 +61,7 @@ class SpeechResource(SyncAPIResource):
|
|
|
61
61
|
*,
|
|
62
62
|
language: Literal["yo", "en", "ha", "ig"],
|
|
63
63
|
text: str,
|
|
64
|
-
voice: Literal["sade", "segun", "femi", "funmi"]
|
|
64
|
+
voice: Literal["sade", "segun", "femi", "funmi"],
|
|
65
65
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
66
66
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
67
67
|
extra_headers: Headers | None = None,
|
|
@@ -98,7 +98,7 @@ class SpeechResource(SyncAPIResource):
|
|
|
98
98
|
cast_to=BinaryAPIResponse,
|
|
99
99
|
)
|
|
100
100
|
|
|
101
|
-
def
|
|
101
|
+
def transcribe(
|
|
102
102
|
self,
|
|
103
103
|
*,
|
|
104
104
|
language: Literal["yo", "en", "ha", "ig"],
|
|
@@ -137,7 +137,7 @@ class SpeechResource(SyncAPIResource):
|
|
|
137
137
|
extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
|
|
138
138
|
return self._post(
|
|
139
139
|
"/v1/transcriptions",
|
|
140
|
-
body=maybe_transform(body,
|
|
140
|
+
body=maybe_transform(body, speech_transcribe_params.SpeechTranscribeParams),
|
|
141
141
|
files=files,
|
|
142
142
|
options=make_request_options(
|
|
143
143
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
@@ -171,7 +171,7 @@ class AsyncSpeechResource(AsyncAPIResource):
|
|
|
171
171
|
*,
|
|
172
172
|
language: Literal["yo", "en", "ha", "ig"],
|
|
173
173
|
text: str,
|
|
174
|
-
voice: Literal["sade", "segun", "femi", "funmi"]
|
|
174
|
+
voice: Literal["sade", "segun", "femi", "funmi"],
|
|
175
175
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
176
176
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
177
177
|
extra_headers: Headers | None = None,
|
|
@@ -208,7 +208,7 @@ class AsyncSpeechResource(AsyncAPIResource):
|
|
|
208
208
|
cast_to=AsyncBinaryAPIResponse,
|
|
209
209
|
)
|
|
210
210
|
|
|
211
|
-
async def
|
|
211
|
+
async def transcribe(
|
|
212
212
|
self,
|
|
213
213
|
*,
|
|
214
214
|
language: Literal["yo", "en", "ha", "ig"],
|
|
@@ -247,7 +247,7 @@ class AsyncSpeechResource(AsyncAPIResource):
|
|
|
247
247
|
extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
|
|
248
248
|
return await self._post(
|
|
249
249
|
"/v1/transcriptions",
|
|
250
|
-
body=await async_maybe_transform(body,
|
|
250
|
+
body=await async_maybe_transform(body, speech_transcribe_params.SpeechTranscribeParams),
|
|
251
251
|
files=files,
|
|
252
252
|
options=make_request_options(
|
|
253
253
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
@@ -264,8 +264,8 @@ class SpeechResourceWithRawResponse:
|
|
|
264
264
|
speech.generate,
|
|
265
265
|
BinaryAPIResponse,
|
|
266
266
|
)
|
|
267
|
-
self.
|
|
268
|
-
speech.
|
|
267
|
+
self.transcribe = to_raw_response_wrapper(
|
|
268
|
+
speech.transcribe,
|
|
269
269
|
)
|
|
270
270
|
|
|
271
271
|
|
|
@@ -277,8 +277,8 @@ class AsyncSpeechResourceWithRawResponse:
|
|
|
277
277
|
speech.generate,
|
|
278
278
|
AsyncBinaryAPIResponse,
|
|
279
279
|
)
|
|
280
|
-
self.
|
|
281
|
-
speech.
|
|
280
|
+
self.transcribe = async_to_raw_response_wrapper(
|
|
281
|
+
speech.transcribe,
|
|
282
282
|
)
|
|
283
283
|
|
|
284
284
|
|
|
@@ -290,8 +290,8 @@ class SpeechResourceWithStreamingResponse:
|
|
|
290
290
|
speech.generate,
|
|
291
291
|
StreamedBinaryAPIResponse
|
|
292
292
|
)
|
|
293
|
-
self.
|
|
294
|
-
speech.
|
|
293
|
+
self.transcribe = to_streamed_response_wrapper(
|
|
294
|
+
speech.transcribe,
|
|
295
295
|
)
|
|
296
296
|
|
|
297
297
|
|
|
@@ -303,6 +303,6 @@ class AsyncSpeechResourceWithStreamingResponse:
|
|
|
303
303
|
speech.generate,
|
|
304
304
|
AsyncStreamedBinaryAPIResponse
|
|
305
305
|
)
|
|
306
|
-
self.
|
|
307
|
-
speech.
|
|
306
|
+
self.transcribe = async_to_streamed_response_wrapper(
|
|
307
|
+
speech.transcribe,
|
|
308
308
|
)
|
spitch/types/__init__.py
CHANGED
|
@@ -4,4 +4,4 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
from .text_tone_mark_params import TextToneMarkParams as TextToneMarkParams
|
|
6
6
|
from .speech_generate_params import SpeechGenerateParams as SpeechGenerateParams
|
|
7
|
-
from .
|
|
7
|
+
from .speech_transcribe_params import SpeechTranscribeParams as SpeechTranscribeParams
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from .._types import FileTypes
|
|
9
|
+
|
|
10
|
+
__all__ = ["SpeechTranscribeParams"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class SpeechTranscribeParams(TypedDict, total=False):
|
|
14
|
+
language: Required[Literal["yo", "en", "ha", "ig"]]
|
|
15
|
+
|
|
16
|
+
content: Optional[FileTypes]
|
|
17
|
+
|
|
18
|
+
url: Optional[str]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: spitch
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.0
|
|
4
4
|
Summary: The official Python library for the spitch API
|
|
5
5
|
Project-URL: Homepage, https://github.com/spi-tch/spitch-python
|
|
6
6
|
Project-URL: Repository, https://github.com/spi-tch/spitch-python
|
|
@@ -69,6 +69,7 @@ client = Spitch(
|
|
|
69
69
|
response = client.speech.generate(
|
|
70
70
|
language="yo",
|
|
71
71
|
text="text",
|
|
72
|
+
voice="sade",
|
|
72
73
|
)
|
|
73
74
|
```
|
|
74
75
|
|
|
@@ -96,6 +97,7 @@ async def main() -> None:
|
|
|
96
97
|
response = await client.speech.generate(
|
|
97
98
|
language="yo",
|
|
98
99
|
text="text",
|
|
100
|
+
voice="sade",
|
|
99
101
|
)
|
|
100
102
|
|
|
101
103
|
|
|
@@ -132,6 +134,7 @@ try:
|
|
|
132
134
|
client.speech.generate(
|
|
133
135
|
language="yo",
|
|
134
136
|
text="text",
|
|
137
|
+
voice="sade",
|
|
135
138
|
)
|
|
136
139
|
except spitch.APIConnectionError as e:
|
|
137
140
|
print("The server could not be reached")
|
|
@@ -178,6 +181,7 @@ client = Spitch(
|
|
|
178
181
|
client.with_options(max_retries=5).speech.generate(
|
|
179
182
|
language="yo",
|
|
180
183
|
text="text",
|
|
184
|
+
voice="sade",
|
|
181
185
|
)
|
|
182
186
|
```
|
|
183
187
|
|
|
@@ -204,6 +208,7 @@ client = Spitch(
|
|
|
204
208
|
client.with_options(timeout=5.0).speech.generate(
|
|
205
209
|
language="yo",
|
|
206
210
|
text="text",
|
|
211
|
+
voice="sade",
|
|
207
212
|
)
|
|
208
213
|
```
|
|
209
214
|
|
|
@@ -246,6 +251,7 @@ client = Spitch()
|
|
|
246
251
|
response = client.speech.with_raw_response.generate(
|
|
247
252
|
language="yo",
|
|
248
253
|
text="text",
|
|
254
|
+
voice="sade",
|
|
249
255
|
)
|
|
250
256
|
print(response.headers.get('X-My-Header'))
|
|
251
257
|
|
|
@@ -267,6 +273,7 @@ To stream the response body, use `.with_streaming_response` instead, which requi
|
|
|
267
273
|
with client.speech.with_streaming_response.generate(
|
|
268
274
|
language="yo",
|
|
269
275
|
text="text",
|
|
276
|
+
voice="sade",
|
|
270
277
|
) as response:
|
|
271
278
|
print(response.headers.get("X-My-Header"))
|
|
272
279
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
spitch/__init__.py,sha256=mBQhmNu88PeR66Zmw9atnzuU8f1mpSPcW7vn-EeSikE,2399
|
|
2
|
-
spitch/_base_client.py,sha256=
|
|
2
|
+
spitch/_base_client.py,sha256=PLtLHoOh2kn4Bpm-5tYKIUrVqbuD0UWr1BKuhnGwUXU,67840
|
|
3
3
|
spitch/_client.py,sha256=wnexAmnaiafFtJM7PC9LyThw3aIkI6eLn7ZReCL2iLY,15446
|
|
4
4
|
spitch/_compat.py,sha256=9CWnEaYK0kot7aSNW-m2W9xZb5giIdvKN9sWxvBbbSA,6488
|
|
5
5
|
spitch/_constants.py,sha256=JE8kyZa2Q4NK_i4fO--8siEYTzeHnT0fYbOFDgDP4uk,464
|
|
@@ -11,7 +11,7 @@ spitch/_resource.py,sha256=TLFPcOOmtxZOQLh3XCNPB_BdrQpp0MIYoKoH52aRAu8,1100
|
|
|
11
11
|
spitch/_response.py,sha256=aN6swtguiZ7CC_hWFrwoUa53FgSbjRfZXxYHvfDNGeo,28609
|
|
12
12
|
spitch/_streaming.py,sha256=5SpId2EIfF8Ee8UUYmJxqgHUGP1ZdHCUHhHCdNJREFA,10100
|
|
13
13
|
spitch/_types.py,sha256=dsJyGWdBXaYJaRBqn2V3iRsfpWw71rFaSxdSM8sPQYY,6103
|
|
14
|
-
spitch/_version.py,sha256=
|
|
14
|
+
spitch/_version.py,sha256=L0Aps0N-5x9tukfOzO2wIPVTHcOjnBjKtV6Pjx2jzIo,158
|
|
15
15
|
spitch/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
spitch/_utils/__init__.py,sha256=Uzq1-FIih_VUjzdNVWXks0sdC39KBKLMrZoz-_JOjJ4,1988
|
|
17
17
|
spitch/_utils/_logs.py,sha256=ApRyYK_WgZfEr_ygBUBXWMlTgeMr2tdNOGlH8jE4oJc,774
|
|
@@ -24,13 +24,14 @@ spitch/_utils/_typing.py,sha256=tFbktdpdHCQliwzGsWysgn0P5H0JRdagkZdb_LegGkY,3838
|
|
|
24
24
|
spitch/_utils/_utils.py,sha256=tYrr7IX-5NMwsVKbNggbzOM84uNw7XnAe06e2Ln8Or0,11472
|
|
25
25
|
spitch/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
|
|
26
26
|
spitch/resources/__init__.py,sha256=KT6rAvIlWHQk9QdM4Jp8ABziKILaBrrtiO7LCB5Wa5E,976
|
|
27
|
-
spitch/resources/speech.py,sha256=
|
|
27
|
+
spitch/resources/speech.py,sha256=srpM1YYYJs0_TegHmnh0WSIoa1lIKBbOnZ18LKzZOD4,11357
|
|
28
28
|
spitch/resources/text.py,sha256=xy7N1q5ioXVMtmcW6iOE8j8n9j4lvnpvO4jJ9FMZmsU,6071
|
|
29
|
-
spitch/types/__init__.py,sha256=
|
|
30
|
-
spitch/types/speech_generate_params.py,sha256=
|
|
29
|
+
spitch/types/__init__.py,sha256=4ePk7asUYW79AqILx8fmOhFnMgUpWyMvkhZUbOpaaUA,367
|
|
30
|
+
spitch/types/speech_generate_params.py,sha256=cZjZhlP9CIuwRQEnsAiBCurPEIlLgVBTYxx98hQViHg,417
|
|
31
31
|
spitch/types/speech_transcibe_params.py,sha256=WvwBsSctqJDXOFJNYyjfijwCnAdJCPkJobESfmLy3aI,448
|
|
32
|
+
spitch/types/speech_transcribe_params.py,sha256=FEG512EPDTm2WbDHefbn8tiSbnIqF8ZnFjc4rYekMRY,450
|
|
32
33
|
spitch/types/text_tone_mark_params.py,sha256=63P5VElxanYkDP1ZLEuQt97JSgVpMCaAo4WRWLDvhlY,349
|
|
33
|
-
spitch-1.
|
|
34
|
-
spitch-1.
|
|
35
|
-
spitch-1.
|
|
36
|
-
spitch-1.
|
|
34
|
+
spitch-1.7.0.dist-info/METADATA,sha256=VpNNdGB6_Uf7Revzl-lakCCojah4sKV4fkwBM4cGRHc,12645
|
|
35
|
+
spitch-1.7.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
36
|
+
spitch-1.7.0.dist-info/licenses/LICENSE,sha256=529F8Amq5MfoIm33JY544oweKES9vw9_xS1CNx-ztPI,11336
|
|
37
|
+
spitch-1.7.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|