camb-sdk 1.5.4__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.
Files changed (167) hide show
  1. camb/__init__.py +335 -0
  2. camb/audio_separation/__init__.py +4 -0
  3. camb/audio_separation/client.py +406 -0
  4. camb/audio_separation/raw_client.py +534 -0
  5. camb/client.py +717 -0
  6. camb/core/__init__.py +105 -0
  7. camb/core/api_error.py +23 -0
  8. camb/core/client_wrapper.py +113 -0
  9. camb/core/datetime_utils.py +28 -0
  10. camb/core/file.py +67 -0
  11. camb/core/force_multipart.py +18 -0
  12. camb/core/http_client.py +663 -0
  13. camb/core/http_response.py +55 -0
  14. camb/core/http_sse/__init__.py +42 -0
  15. camb/core/http_sse/_api.py +112 -0
  16. camb/core/http_sse/_decoders.py +61 -0
  17. camb/core/http_sse/_exceptions.py +7 -0
  18. camb/core/http_sse/_models.py +17 -0
  19. camb/core/jsonable_encoder.py +100 -0
  20. camb/core/pydantic_utilities.py +260 -0
  21. camb/core/query_encoder.py +58 -0
  22. camb/core/remove_none_from_dict.py +11 -0
  23. camb/core/request_options.py +35 -0
  24. camb/core/serialization.py +276 -0
  25. camb/deprecated_streaming/__init__.py +4 -0
  26. camb/deprecated_streaming/client.py +532 -0
  27. camb/deprecated_streaming/raw_client.py +639 -0
  28. camb/dictionaries/__init__.py +4 -0
  29. camb/dictionaries/client.py +785 -0
  30. camb/dictionaries/raw_client.py +1048 -0
  31. camb/dub/__init__.py +49 -0
  32. camb/dub/client.py +846 -0
  33. camb/dub/raw_client.py +1194 -0
  34. camb/dub/types/__init__.py +53 -0
  35. camb/dub/types/dubbed_output_in_alt_format_request_payload_output_format.py +8 -0
  36. camb/dub/types/get_dubbed_output_in_alt_format_dub_alt_format_run_id_language_post_response.py +9 -0
  37. camb/dub/types/get_dubbed_run_info_dub_result_run_id_get_response.py +7 -0
  38. camb/dub/types/get_dubbing_runs_results_dubbing_results_post_response_value.py +7 -0
  39. camb/environment.py +7 -0
  40. camb/errors/__init__.py +34 -0
  41. camb/errors/unprocessable_entity_error.py +11 -0
  42. camb/folders/__init__.py +4 -0
  43. camb/folders/client.py +213 -0
  44. camb/folders/raw_client.py +278 -0
  45. camb/languages/__init__.py +4 -0
  46. camb/languages/client.py +168 -0
  47. camb/languages/raw_client.py +223 -0
  48. camb/project_setup/__init__.py +4 -0
  49. camb/project_setup/client.py +537 -0
  50. camb/project_setup/raw_client.py +655 -0
  51. camb/py.typed +0 -0
  52. camb/raw_client.py +236 -0
  53. camb/story/__init__.py +37 -0
  54. camb/story/client.py +579 -0
  55. camb/story/raw_client.py +743 -0
  56. camb/story/types/__init__.py +38 -0
  57. camb/story/types/create_story_story_post_response.py +8 -0
  58. camb/story/types/setup_story_story_setup_post_response.py +8 -0
  59. camb/streaming/__init__.py +4 -0
  60. camb/streaming/client.py +645 -0
  61. camb/streaming/raw_client.py +796 -0
  62. camb/text_to_audio/__init__.py +4 -0
  63. camb/text_to_audio/client.py +469 -0
  64. camb/text_to_audio/raw_client.py +610 -0
  65. camb/text_to_speech/__init__.py +49 -0
  66. camb/text_to_speech/baseten.py +214 -0
  67. camb/text_to_speech/client.py +742 -0
  68. camb/text_to_speech/raw_client.py +995 -0
  69. camb/text_to_speech/types/__init__.py +47 -0
  70. camb/text_to_speech/types/create_stream_tts_request_payload_language.py +71 -0
  71. camb/text_to_speech/types/create_stream_tts_request_payload_speech_model.py +7 -0
  72. camb/text_to_speech/types/get_tts_results_tts_results_post_response_value.py +7 -0
  73. camb/text_to_speech/types/get_tts_run_info_tts_result_run_id_get_response.py +7 -0
  74. camb/text_to_voice/__init__.py +4 -0
  75. camb/text_to_voice/client.py +329 -0
  76. camb/text_to_voice/raw_client.py +405 -0
  77. camb/transcription/__init__.py +4 -0
  78. camb/transcription/client.py +465 -0
  79. camb/transcription/raw_client.py +587 -0
  80. camb/translated_story/__init__.py +4 -0
  81. camb/translated_story/client.py +309 -0
  82. camb/translated_story/raw_client.py +381 -0
  83. camb/translated_tts/__init__.py +4 -0
  84. camb/translated_tts/client.py +313 -0
  85. camb/translated_tts/raw_client.py +357 -0
  86. camb/translation/__init__.py +4 -0
  87. camb/translation/client.py +631 -0
  88. camb/translation/raw_client.py +787 -0
  89. camb/types/__init__.py +236 -0
  90. camb/types/add_target_language_out.py +20 -0
  91. camb/types/audio_output_type.py +5 -0
  92. camb/types/audio_stream.py +31 -0
  93. camb/types/config_stream.py +22 -0
  94. camb/types/config_stream_pipeline.py +28 -0
  95. camb/types/create_custom_voice_out.py +19 -0
  96. camb/types/create_project_setup_out.py +19 -0
  97. camb/types/create_stream_out.py +22 -0
  98. camb/types/create_stream_request_payload.py +70 -0
  99. camb/types/create_translated_tts_out.py +19 -0
  100. camb/types/create_tts_out.py +19 -0
  101. camb/types/data_stream.py +24 -0
  102. camb/types/demixing_option.py +10 -0
  103. camb/types/dictionary_term.py +21 -0
  104. camb/types/dictionary_with_terms.py +28 -0
  105. camb/types/dubbing_result.py +22 -0
  106. camb/types/exception_reasons.py +30 -0
  107. camb/types/folder.py +20 -0
  108. camb/types/formalities.py +3 -0
  109. camb/types/gender.py +3 -0
  110. camb/types/get_audio_separation_result_out.py +20 -0
  111. camb/types/get_create_project_setup_response.py +21 -0
  112. camb/types/get_probe_stream_in.py +21 -0
  113. camb/types/get_probe_stream_out.py +24 -0
  114. camb/types/get_setup_story_result_response.py +21 -0
  115. camb/types/get_text_to_voice_result_out.py +19 -0
  116. camb/types/get_tts_result_out_file_url.py +19 -0
  117. camb/types/http_validation_error.py +20 -0
  118. camb/types/language_enums.py +154 -0
  119. camb/types/language_pydantic_model.py +21 -0
  120. camb/types/languages.py +3 -0
  121. camb/types/orchestrator_pipeline_call_result.py +19 -0
  122. camb/types/orchestrator_pipeline_result.py +25 -0
  123. camb/types/orchestrator_pipeline_result_exception_reason.py +7 -0
  124. camb/types/orchestrator_pipeline_result_message.py +5 -0
  125. camb/types/output_format.py +10 -0
  126. camb/types/overdub_config.py +37 -0
  127. camb/types/project_details.py +28 -0
  128. camb/types/revoicing_option.py +5 -0
  129. camb/types/run_i_ds_request_payload.py +19 -0
  130. camb/types/segmenting_option.py +5 -0
  131. camb/types/source_stream.py +30 -0
  132. camb/types/story_details.py +27 -0
  133. camb/types/stream_category.py +3 -0
  134. camb/types/stream_tts_inference_options.py +38 -0
  135. camb/types/stream_tts_output_configuration.py +33 -0
  136. camb/types/stream_tts_voice_settings.py +28 -0
  137. camb/types/stream_type.py +3 -0
  138. camb/types/stream_url_for_languages.py +21 -0
  139. camb/types/target_stream.py +34 -0
  140. camb/types/task_status.py +5 -0
  141. camb/types/term_translation_input.py +21 -0
  142. camb/types/term_translation_output.py +20 -0
  143. camb/types/text_to_audio_result.py +19 -0
  144. camb/types/text_to_audio_type.py +5 -0
  145. camb/types/transcribing_option.py +5 -0
  146. camb/types/transcript.py +22 -0
  147. camb/types/transcript_data_type.py +5 -0
  148. camb/types/transcript_file_format.py +5 -0
  149. camb/types/transcription_result.py +20 -0
  150. camb/types/translating_option.py +5 -0
  151. camb/types/translation_result.py +19 -0
  152. camb/types/tts_provider.py +3 -0
  153. camb/types/validation_error.py +22 -0
  154. camb/types/validation_error_loc_item.py +5 -0
  155. camb/types/video_output_type_without_avi.py +5 -0
  156. camb/types/video_stream.py +28 -0
  157. camb/types/voice.py +28 -0
  158. camb/voice_cloning/__init__.py +34 -0
  159. camb/voice_cloning/client.py +265 -0
  160. camb/voice_cloning/raw_client.py +320 -0
  161. camb/voice_cloning/types/__init__.py +36 -0
  162. camb/voice_cloning/types/list_voices_list_voices_get_response_item.py +7 -0
  163. camb_sdk-1.5.4.dist-info/METADATA +282 -0
  164. camb_sdk-1.5.4.dist-info/RECORD +167 -0
  165. camb_sdk-1.5.4.dist-info/WHEEL +5 -0
  166. camb_sdk-1.5.4.dist-info/licenses/LICENSE +21 -0
  167. camb_sdk-1.5.4.dist-info/top_level.txt +1 -0
camb/raw_client.py ADDED
@@ -0,0 +1,236 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from .core.api_error import ApiError
7
+ from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from .core.http_response import AsyncHttpResponse, HttpResponse
9
+ from .core.pydantic_utilities import parse_obj_as
10
+ from .core.request_options import RequestOptions
11
+
12
+
13
+ class RawCambApi:
14
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
15
+ self._client_wrapper = client_wrapper
16
+
17
+ def get_swagger_docs_docs_get(
18
+ self, *, request_options: typing.Optional[RequestOptions] = None
19
+ ) -> HttpResponse[typing.Any]:
20
+ """
21
+ Parameters
22
+ ----------
23
+ request_options : typing.Optional[RequestOptions]
24
+ Request-specific configuration.
25
+
26
+ Returns
27
+ -------
28
+ HttpResponse[typing.Any]
29
+ Successful Response
30
+ """
31
+ _response = self._client_wrapper.httpx_client.request(
32
+ "docs",
33
+ method="GET",
34
+ request_options=request_options,
35
+ )
36
+ try:
37
+ if _response is None or not _response.text.strip():
38
+ return HttpResponse(response=_response, data=None)
39
+ if 200 <= _response.status_code < 300:
40
+ _data = typing.cast(
41
+ typing.Any,
42
+ parse_obj_as(
43
+ type_=typing.Any, # type: ignore
44
+ object_=_response.json(),
45
+ ),
46
+ )
47
+ return HttpResponse(response=_response, data=_data)
48
+ _response_json = _response.json()
49
+ except JSONDecodeError:
50
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
51
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
52
+
53
+ def get_redoc_docs_redocs_get(
54
+ self, *, request_options: typing.Optional[RequestOptions] = None
55
+ ) -> HttpResponse[typing.Any]:
56
+ """
57
+ Parameters
58
+ ----------
59
+ request_options : typing.Optional[RequestOptions]
60
+ Request-specific configuration.
61
+
62
+ Returns
63
+ -------
64
+ HttpResponse[typing.Any]
65
+ Successful Response
66
+ """
67
+ _response = self._client_wrapper.httpx_client.request(
68
+ "redocs",
69
+ method="GET",
70
+ request_options=request_options,
71
+ )
72
+ try:
73
+ if _response is None or not _response.text.strip():
74
+ return HttpResponse(response=_response, data=None)
75
+ if 200 <= _response.status_code < 300:
76
+ _data = typing.cast(
77
+ typing.Any,
78
+ parse_obj_as(
79
+ type_=typing.Any, # type: ignore
80
+ object_=_response.json(),
81
+ ),
82
+ )
83
+ return HttpResponse(response=_response, data=_data)
84
+ _response_json = _response.json()
85
+ except JSONDecodeError:
86
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
87
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
88
+
89
+ def get_openapi_schema_openapi_json_get(
90
+ self, *, request_options: typing.Optional[RequestOptions] = None
91
+ ) -> HttpResponse[typing.Any]:
92
+ """
93
+ Parameters
94
+ ----------
95
+ request_options : typing.Optional[RequestOptions]
96
+ Request-specific configuration.
97
+
98
+ Returns
99
+ -------
100
+ HttpResponse[typing.Any]
101
+ Successful Response
102
+ """
103
+ _response = self._client_wrapper.httpx_client.request(
104
+ "openapi.json",
105
+ method="GET",
106
+ request_options=request_options,
107
+ )
108
+ try:
109
+ if _response is None or not _response.text.strip():
110
+ return HttpResponse(response=_response, data=None)
111
+ if 200 <= _response.status_code < 300:
112
+ _data = typing.cast(
113
+ typing.Any,
114
+ parse_obj_as(
115
+ type_=typing.Any, # type: ignore
116
+ object_=_response.json(),
117
+ ),
118
+ )
119
+ return HttpResponse(response=_response, data=_data)
120
+ _response_json = _response.json()
121
+ except JSONDecodeError:
122
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
123
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
124
+
125
+
126
+ class AsyncRawCambApi:
127
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
128
+ self._client_wrapper = client_wrapper
129
+
130
+ async def get_swagger_docs_docs_get(
131
+ self, *, request_options: typing.Optional[RequestOptions] = None
132
+ ) -> AsyncHttpResponse[typing.Any]:
133
+ """
134
+ Parameters
135
+ ----------
136
+ request_options : typing.Optional[RequestOptions]
137
+ Request-specific configuration.
138
+
139
+ Returns
140
+ -------
141
+ AsyncHttpResponse[typing.Any]
142
+ Successful Response
143
+ """
144
+ _response = await self._client_wrapper.httpx_client.request(
145
+ "docs",
146
+ method="GET",
147
+ request_options=request_options,
148
+ )
149
+ try:
150
+ if _response is None or not _response.text.strip():
151
+ return AsyncHttpResponse(response=_response, data=None)
152
+ if 200 <= _response.status_code < 300:
153
+ _data = typing.cast(
154
+ typing.Any,
155
+ parse_obj_as(
156
+ type_=typing.Any, # type: ignore
157
+ object_=_response.json(),
158
+ ),
159
+ )
160
+ return AsyncHttpResponse(response=_response, data=_data)
161
+ _response_json = _response.json()
162
+ except JSONDecodeError:
163
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
164
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
165
+
166
+ async def get_redoc_docs_redocs_get(
167
+ self, *, request_options: typing.Optional[RequestOptions] = None
168
+ ) -> AsyncHttpResponse[typing.Any]:
169
+ """
170
+ Parameters
171
+ ----------
172
+ request_options : typing.Optional[RequestOptions]
173
+ Request-specific configuration.
174
+
175
+ Returns
176
+ -------
177
+ AsyncHttpResponse[typing.Any]
178
+ Successful Response
179
+ """
180
+ _response = await self._client_wrapper.httpx_client.request(
181
+ "redocs",
182
+ method="GET",
183
+ request_options=request_options,
184
+ )
185
+ try:
186
+ if _response is None or not _response.text.strip():
187
+ return AsyncHttpResponse(response=_response, data=None)
188
+ if 200 <= _response.status_code < 300:
189
+ _data = typing.cast(
190
+ typing.Any,
191
+ parse_obj_as(
192
+ type_=typing.Any, # type: ignore
193
+ object_=_response.json(),
194
+ ),
195
+ )
196
+ return AsyncHttpResponse(response=_response, data=_data)
197
+ _response_json = _response.json()
198
+ except JSONDecodeError:
199
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
200
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
201
+
202
+ async def get_openapi_schema_openapi_json_get(
203
+ self, *, request_options: typing.Optional[RequestOptions] = None
204
+ ) -> AsyncHttpResponse[typing.Any]:
205
+ """
206
+ Parameters
207
+ ----------
208
+ request_options : typing.Optional[RequestOptions]
209
+ Request-specific configuration.
210
+
211
+ Returns
212
+ -------
213
+ AsyncHttpResponse[typing.Any]
214
+ Successful Response
215
+ """
216
+ _response = await self._client_wrapper.httpx_client.request(
217
+ "openapi.json",
218
+ method="GET",
219
+ request_options=request_options,
220
+ )
221
+ try:
222
+ if _response is None or not _response.text.strip():
223
+ return AsyncHttpResponse(response=_response, data=None)
224
+ if 200 <= _response.status_code < 300:
225
+ _data = typing.cast(
226
+ typing.Any,
227
+ parse_obj_as(
228
+ type_=typing.Any, # type: ignore
229
+ object_=_response.json(),
230
+ ),
231
+ )
232
+ return AsyncHttpResponse(response=_response, data=_data)
233
+ _response_json = _response.json()
234
+ except JSONDecodeError:
235
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
236
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
camb/story/__init__.py ADDED
@@ -0,0 +1,37 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .types import CreateStoryStoryPostResponse, SetupStoryStorySetupPostResponse
10
+ _dynamic_imports: typing.Dict[str, str] = {
11
+ "CreateStoryStoryPostResponse": ".types",
12
+ "SetupStoryStorySetupPostResponse": ".types",
13
+ }
14
+
15
+
16
+ def __getattr__(attr_name: str) -> typing.Any:
17
+ module_name = _dynamic_imports.get(attr_name)
18
+ if module_name is None:
19
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
20
+ try:
21
+ module = import_module(module_name, __package__)
22
+ if module_name == f".{attr_name}":
23
+ return module
24
+ else:
25
+ return getattr(module, attr_name)
26
+ except ImportError as e:
27
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
28
+ except AttributeError as e:
29
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
30
+
31
+
32
+ def __dir__():
33
+ lazy_attrs = list(_dynamic_imports.keys())
34
+ return sorted(lazy_attrs)
35
+
36
+
37
+ __all__ = ["CreateStoryStoryPostResponse", "SetupStoryStorySetupPostResponse"]