studyfetch-sdk 0.1.0a4__py3-none-any.whl → 0.1.0a5__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.
- studyfetch_sdk/_version.py +1 -1
- studyfetch_sdk/resources/v1/explainers.py +154 -9
- studyfetch_sdk/resources/v1/scenarios/component.py +116 -12
- studyfetch_sdk/resources/v1/scenarios/scenarios.py +245 -9
- studyfetch_sdk/types/v1/__init__.py +2 -0
- studyfetch_sdk/types/v1/component_create_params.py +60 -6
- studyfetch_sdk/types/v1/explainer_create_params.py +45 -0
- studyfetch_sdk/types/v1/explainer_handle_webhook_params.py +45 -3
- studyfetch_sdk/types/v1/scenario_create_params.py +39 -2
- studyfetch_sdk/types/v1/scenario_submit_params.py +18 -0
- studyfetch_sdk/types/v1/scenario_update_params.py +39 -2
- studyfetch_sdk/types/v1/scenarios/component_update_params.py +39 -2
- {studyfetch_sdk-0.1.0a4.dist-info → studyfetch_sdk-0.1.0a5.dist-info}/METADATA +1 -1
- {studyfetch_sdk-0.1.0a4.dist-info → studyfetch_sdk-0.1.0a5.dist-info}/RECORD +16 -14
- {studyfetch_sdk-0.1.0a4.dist-info → studyfetch_sdk-0.1.0a5.dist-info}/WHEEL +0 -0
- {studyfetch_sdk-0.1.0a4.dist-info → studyfetch_sdk-0.1.0a5.dist-info}/licenses/LICENSE +0 -0
studyfetch_sdk/_version.py
CHANGED
@@ -2,12 +2,15 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
+
from typing import List
|
6
|
+
from typing_extensions import Literal
|
7
|
+
|
5
8
|
import httpx
|
6
9
|
|
7
10
|
from ..._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
|
8
11
|
from ..._utils import maybe_transform, async_maybe_transform
|
9
12
|
from ..._compat import cached_property
|
10
|
-
from ...types.v1 import explainer_handle_webhook_params
|
13
|
+
from ...types.v1 import explainer_create_params, explainer_handle_webhook_params
|
11
14
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
12
15
|
from ..._response import (
|
13
16
|
to_raw_response_wrapper,
|
@@ -43,6 +46,17 @@ class ExplainersResource(SyncAPIResource):
|
|
43
46
|
def create(
|
44
47
|
self,
|
45
48
|
*,
|
49
|
+
component_id: str,
|
50
|
+
folder_ids: List[str],
|
51
|
+
material_ids: List[str],
|
52
|
+
target_length: float,
|
53
|
+
title: str,
|
54
|
+
image_search: bool | NotGiven = NOT_GIVEN,
|
55
|
+
model: str | NotGiven = NOT_GIVEN,
|
56
|
+
style: str | NotGiven = NOT_GIVEN,
|
57
|
+
user_id: str | NotGiven = NOT_GIVEN,
|
58
|
+
vertical_video: bool | NotGiven = NOT_GIVEN,
|
59
|
+
web_search: bool | NotGiven = NOT_GIVEN,
|
46
60
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
47
61
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
48
62
|
extra_headers: Headers | None = None,
|
@@ -50,10 +64,59 @@ class ExplainersResource(SyncAPIResource):
|
|
50
64
|
extra_body: Body | None = None,
|
51
65
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
52
66
|
) -> None:
|
53
|
-
"""
|
67
|
+
"""
|
68
|
+
Create explainers component
|
69
|
+
|
70
|
+
Args:
|
71
|
+
component_id: Component ID
|
72
|
+
|
73
|
+
folder_ids: Folder IDs to include
|
74
|
+
|
75
|
+
material_ids: Material IDs to include
|
76
|
+
|
77
|
+
target_length: Target video length in seconds
|
78
|
+
|
79
|
+
title: Title for the explainer video
|
80
|
+
|
81
|
+
image_search: Enable image search for visuals
|
82
|
+
|
83
|
+
model: AI model to use
|
84
|
+
|
85
|
+
style: Video style
|
86
|
+
|
87
|
+
user_id: User ID
|
88
|
+
|
89
|
+
vertical_video: Create vertical video format (9:16)
|
90
|
+
|
91
|
+
web_search: Enable web search for additional content
|
92
|
+
|
93
|
+
extra_headers: Send extra headers
|
94
|
+
|
95
|
+
extra_query: Add additional query parameters to the request
|
96
|
+
|
97
|
+
extra_body: Add additional JSON properties to the request
|
98
|
+
|
99
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
100
|
+
"""
|
54
101
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
55
102
|
return self._post(
|
56
103
|
"/api/v1/explainers/create",
|
104
|
+
body=maybe_transform(
|
105
|
+
{
|
106
|
+
"component_id": component_id,
|
107
|
+
"folder_ids": folder_ids,
|
108
|
+
"material_ids": material_ids,
|
109
|
+
"target_length": target_length,
|
110
|
+
"title": title,
|
111
|
+
"image_search": image_search,
|
112
|
+
"model": model,
|
113
|
+
"style": style,
|
114
|
+
"user_id": user_id,
|
115
|
+
"vertical_video": vertical_video,
|
116
|
+
"web_search": web_search,
|
117
|
+
},
|
118
|
+
explainer_create_params.ExplainerCreateParams,
|
119
|
+
),
|
57
120
|
options=make_request_options(
|
58
121
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
59
122
|
),
|
@@ -63,7 +126,8 @@ class ExplainersResource(SyncAPIResource):
|
|
63
126
|
def handle_webhook(
|
64
127
|
self,
|
65
128
|
*,
|
66
|
-
|
129
|
+
event: Literal["video.completed", "video.progress", "video.failed"],
|
130
|
+
video: explainer_handle_webhook_params.Video,
|
67
131
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
68
132
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
69
133
|
extra_headers: Headers | None = None,
|
@@ -72,9 +136,13 @@ class ExplainersResource(SyncAPIResource):
|
|
72
136
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
73
137
|
) -> None:
|
74
138
|
"""
|
75
|
-
Handle webhook events
|
139
|
+
Handle explainer video webhook events
|
76
140
|
|
77
141
|
Args:
|
142
|
+
event: Webhook event type
|
143
|
+
|
144
|
+
video: Video data
|
145
|
+
|
78
146
|
extra_headers: Send extra headers
|
79
147
|
|
80
148
|
extra_query: Add additional query parameters to the request
|
@@ -86,7 +154,13 @@ class ExplainersResource(SyncAPIResource):
|
|
86
154
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
87
155
|
return self._post(
|
88
156
|
"/api/v1/explainers/webhook",
|
89
|
-
body=maybe_transform(
|
157
|
+
body=maybe_transform(
|
158
|
+
{
|
159
|
+
"event": event,
|
160
|
+
"video": video,
|
161
|
+
},
|
162
|
+
explainer_handle_webhook_params.ExplainerHandleWebhookParams,
|
163
|
+
),
|
90
164
|
options=make_request_options(
|
91
165
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
92
166
|
),
|
@@ -117,6 +191,17 @@ class AsyncExplainersResource(AsyncAPIResource):
|
|
117
191
|
async def create(
|
118
192
|
self,
|
119
193
|
*,
|
194
|
+
component_id: str,
|
195
|
+
folder_ids: List[str],
|
196
|
+
material_ids: List[str],
|
197
|
+
target_length: float,
|
198
|
+
title: str,
|
199
|
+
image_search: bool | NotGiven = NOT_GIVEN,
|
200
|
+
model: str | NotGiven = NOT_GIVEN,
|
201
|
+
style: str | NotGiven = NOT_GIVEN,
|
202
|
+
user_id: str | NotGiven = NOT_GIVEN,
|
203
|
+
vertical_video: bool | NotGiven = NOT_GIVEN,
|
204
|
+
web_search: bool | NotGiven = NOT_GIVEN,
|
120
205
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
121
206
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
122
207
|
extra_headers: Headers | None = None,
|
@@ -124,10 +209,59 @@ class AsyncExplainersResource(AsyncAPIResource):
|
|
124
209
|
extra_body: Body | None = None,
|
125
210
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
126
211
|
) -> None:
|
127
|
-
"""
|
212
|
+
"""
|
213
|
+
Create explainers component
|
214
|
+
|
215
|
+
Args:
|
216
|
+
component_id: Component ID
|
217
|
+
|
218
|
+
folder_ids: Folder IDs to include
|
219
|
+
|
220
|
+
material_ids: Material IDs to include
|
221
|
+
|
222
|
+
target_length: Target video length in seconds
|
223
|
+
|
224
|
+
title: Title for the explainer video
|
225
|
+
|
226
|
+
image_search: Enable image search for visuals
|
227
|
+
|
228
|
+
model: AI model to use
|
229
|
+
|
230
|
+
style: Video style
|
231
|
+
|
232
|
+
user_id: User ID
|
233
|
+
|
234
|
+
vertical_video: Create vertical video format (9:16)
|
235
|
+
|
236
|
+
web_search: Enable web search for additional content
|
237
|
+
|
238
|
+
extra_headers: Send extra headers
|
239
|
+
|
240
|
+
extra_query: Add additional query parameters to the request
|
241
|
+
|
242
|
+
extra_body: Add additional JSON properties to the request
|
243
|
+
|
244
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
245
|
+
"""
|
128
246
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
129
247
|
return await self._post(
|
130
248
|
"/api/v1/explainers/create",
|
249
|
+
body=await async_maybe_transform(
|
250
|
+
{
|
251
|
+
"component_id": component_id,
|
252
|
+
"folder_ids": folder_ids,
|
253
|
+
"material_ids": material_ids,
|
254
|
+
"target_length": target_length,
|
255
|
+
"title": title,
|
256
|
+
"image_search": image_search,
|
257
|
+
"model": model,
|
258
|
+
"style": style,
|
259
|
+
"user_id": user_id,
|
260
|
+
"vertical_video": vertical_video,
|
261
|
+
"web_search": web_search,
|
262
|
+
},
|
263
|
+
explainer_create_params.ExplainerCreateParams,
|
264
|
+
),
|
131
265
|
options=make_request_options(
|
132
266
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
133
267
|
),
|
@@ -137,7 +271,8 @@ class AsyncExplainersResource(AsyncAPIResource):
|
|
137
271
|
async def handle_webhook(
|
138
272
|
self,
|
139
273
|
*,
|
140
|
-
|
274
|
+
event: Literal["video.completed", "video.progress", "video.failed"],
|
275
|
+
video: explainer_handle_webhook_params.Video,
|
141
276
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
142
277
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
143
278
|
extra_headers: Headers | None = None,
|
@@ -146,9 +281,13 @@ class AsyncExplainersResource(AsyncAPIResource):
|
|
146
281
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
147
282
|
) -> None:
|
148
283
|
"""
|
149
|
-
Handle webhook events
|
284
|
+
Handle explainer video webhook events
|
150
285
|
|
151
286
|
Args:
|
287
|
+
event: Webhook event type
|
288
|
+
|
289
|
+
video: Video data
|
290
|
+
|
152
291
|
extra_headers: Send extra headers
|
153
292
|
|
154
293
|
extra_query: Add additional query parameters to the request
|
@@ -160,7 +299,13 @@ class AsyncExplainersResource(AsyncAPIResource):
|
|
160
299
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
161
300
|
return await self._post(
|
162
301
|
"/api/v1/explainers/webhook",
|
163
|
-
body=await async_maybe_transform(
|
302
|
+
body=await async_maybe_transform(
|
303
|
+
{
|
304
|
+
"event": event,
|
305
|
+
"video": video,
|
306
|
+
},
|
307
|
+
explainer_handle_webhook_params.ExplainerHandleWebhookParams,
|
308
|
+
),
|
164
309
|
options=make_request_options(
|
165
310
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
166
311
|
),
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
+
from typing import Iterable
|
6
|
+
|
5
7
|
import httpx
|
6
8
|
|
7
9
|
from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
|
@@ -76,9 +78,20 @@ class ComponentResource(SyncAPIResource):
|
|
76
78
|
|
77
79
|
def update(
|
78
80
|
self,
|
79
|
-
|
81
|
+
path_component_id: str,
|
80
82
|
*,
|
81
|
-
|
83
|
+
body_component_id: str,
|
84
|
+
name: str,
|
85
|
+
characters: Iterable[object] | NotGiven = NOT_GIVEN,
|
86
|
+
context: str | NotGiven = NOT_GIVEN,
|
87
|
+
description: str | NotGiven = NOT_GIVEN,
|
88
|
+
final_answer_prompt: str | NotGiven = NOT_GIVEN,
|
89
|
+
format: str | NotGiven = NOT_GIVEN,
|
90
|
+
goal: str | NotGiven = NOT_GIVEN,
|
91
|
+
greeting_character_id: str | NotGiven = NOT_GIVEN,
|
92
|
+
greeting_message: str | NotGiven = NOT_GIVEN,
|
93
|
+
requires_final_answer: bool | NotGiven = NOT_GIVEN,
|
94
|
+
tools: Iterable[object] | NotGiven = NOT_GIVEN,
|
82
95
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
83
96
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
84
97
|
extra_headers: Headers | None = None,
|
@@ -90,6 +103,30 @@ class ComponentResource(SyncAPIResource):
|
|
90
103
|
Update scenario by component ID
|
91
104
|
|
92
105
|
Args:
|
106
|
+
body_component_id: Associated component ID
|
107
|
+
|
108
|
+
name: Scenario name
|
109
|
+
|
110
|
+
characters: Scenario characters
|
111
|
+
|
112
|
+
context: Scenario context
|
113
|
+
|
114
|
+
description: Scenario description
|
115
|
+
|
116
|
+
final_answer_prompt: Prompt for final answer
|
117
|
+
|
118
|
+
format: Interaction format
|
119
|
+
|
120
|
+
goal: Scenario goal
|
121
|
+
|
122
|
+
greeting_character_id: Character ID for greeting
|
123
|
+
|
124
|
+
greeting_message: Greeting message
|
125
|
+
|
126
|
+
requires_final_answer: Whether scenario requires a final answer
|
127
|
+
|
128
|
+
tools: Available tools
|
129
|
+
|
93
130
|
extra_headers: Send extra headers
|
94
131
|
|
95
132
|
extra_query: Add additional query parameters to the request
|
@@ -98,12 +135,28 @@ class ComponentResource(SyncAPIResource):
|
|
98
135
|
|
99
136
|
timeout: Override the client-level default timeout for this request, in seconds
|
100
137
|
"""
|
101
|
-
if not
|
102
|
-
raise ValueError(f"Expected a non-empty value for `
|
138
|
+
if not path_component_id:
|
139
|
+
raise ValueError(f"Expected a non-empty value for `path_component_id` but received {path_component_id!r}")
|
103
140
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
104
141
|
return self._put(
|
105
|
-
f"/api/v1/scenarios/component/{
|
106
|
-
body=maybe_transform(
|
142
|
+
f"/api/v1/scenarios/component/{path_component_id}",
|
143
|
+
body=maybe_transform(
|
144
|
+
{
|
145
|
+
"body_component_id": body_component_id,
|
146
|
+
"name": name,
|
147
|
+
"characters": characters,
|
148
|
+
"context": context,
|
149
|
+
"description": description,
|
150
|
+
"final_answer_prompt": final_answer_prompt,
|
151
|
+
"format": format,
|
152
|
+
"goal": goal,
|
153
|
+
"greeting_character_id": greeting_character_id,
|
154
|
+
"greeting_message": greeting_message,
|
155
|
+
"requires_final_answer": requires_final_answer,
|
156
|
+
"tools": tools,
|
157
|
+
},
|
158
|
+
component_update_params.ComponentUpdateParams,
|
159
|
+
),
|
107
160
|
options=make_request_options(
|
108
161
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
109
162
|
),
|
@@ -201,9 +254,20 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
201
254
|
|
202
255
|
async def update(
|
203
256
|
self,
|
204
|
-
|
257
|
+
path_component_id: str,
|
205
258
|
*,
|
206
|
-
|
259
|
+
body_component_id: str,
|
260
|
+
name: str,
|
261
|
+
characters: Iterable[object] | NotGiven = NOT_GIVEN,
|
262
|
+
context: str | NotGiven = NOT_GIVEN,
|
263
|
+
description: str | NotGiven = NOT_GIVEN,
|
264
|
+
final_answer_prompt: str | NotGiven = NOT_GIVEN,
|
265
|
+
format: str | NotGiven = NOT_GIVEN,
|
266
|
+
goal: str | NotGiven = NOT_GIVEN,
|
267
|
+
greeting_character_id: str | NotGiven = NOT_GIVEN,
|
268
|
+
greeting_message: str | NotGiven = NOT_GIVEN,
|
269
|
+
requires_final_answer: bool | NotGiven = NOT_GIVEN,
|
270
|
+
tools: Iterable[object] | NotGiven = NOT_GIVEN,
|
207
271
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
208
272
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
209
273
|
extra_headers: Headers | None = None,
|
@@ -215,6 +279,30 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
215
279
|
Update scenario by component ID
|
216
280
|
|
217
281
|
Args:
|
282
|
+
body_component_id: Associated component ID
|
283
|
+
|
284
|
+
name: Scenario name
|
285
|
+
|
286
|
+
characters: Scenario characters
|
287
|
+
|
288
|
+
context: Scenario context
|
289
|
+
|
290
|
+
description: Scenario description
|
291
|
+
|
292
|
+
final_answer_prompt: Prompt for final answer
|
293
|
+
|
294
|
+
format: Interaction format
|
295
|
+
|
296
|
+
goal: Scenario goal
|
297
|
+
|
298
|
+
greeting_character_id: Character ID for greeting
|
299
|
+
|
300
|
+
greeting_message: Greeting message
|
301
|
+
|
302
|
+
requires_final_answer: Whether scenario requires a final answer
|
303
|
+
|
304
|
+
tools: Available tools
|
305
|
+
|
218
306
|
extra_headers: Send extra headers
|
219
307
|
|
220
308
|
extra_query: Add additional query parameters to the request
|
@@ -223,12 +311,28 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
223
311
|
|
224
312
|
timeout: Override the client-level default timeout for this request, in seconds
|
225
313
|
"""
|
226
|
-
if not
|
227
|
-
raise ValueError(f"Expected a non-empty value for `
|
314
|
+
if not path_component_id:
|
315
|
+
raise ValueError(f"Expected a non-empty value for `path_component_id` but received {path_component_id!r}")
|
228
316
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
229
317
|
return await self._put(
|
230
|
-
f"/api/v1/scenarios/component/{
|
231
|
-
body=await async_maybe_transform(
|
318
|
+
f"/api/v1/scenarios/component/{path_component_id}",
|
319
|
+
body=await async_maybe_transform(
|
320
|
+
{
|
321
|
+
"body_component_id": body_component_id,
|
322
|
+
"name": name,
|
323
|
+
"characters": characters,
|
324
|
+
"context": context,
|
325
|
+
"description": description,
|
326
|
+
"final_answer_prompt": final_answer_prompt,
|
327
|
+
"format": format,
|
328
|
+
"goal": goal,
|
329
|
+
"greeting_character_id": greeting_character_id,
|
330
|
+
"greeting_message": greeting_message,
|
331
|
+
"requires_final_answer": requires_final_answer,
|
332
|
+
"tools": tools,
|
333
|
+
},
|
334
|
+
component_update_params.ComponentUpdateParams,
|
335
|
+
),
|
232
336
|
options=make_request_options(
|
233
337
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
234
338
|
),
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
+
from typing import Iterable
|
6
|
+
|
5
7
|
import httpx
|
6
8
|
|
7
9
|
from .sessions import (
|
@@ -23,7 +25,7 @@ from .component import (
|
|
23
25
|
AsyncComponentResourceWithStreamingResponse,
|
24
26
|
)
|
25
27
|
from ...._compat import cached_property
|
26
|
-
from ....types.v1 import scenario_create_params, scenario_update_params
|
28
|
+
from ....types.v1 import scenario_create_params, scenario_submit_params, scenario_update_params
|
27
29
|
from ...._resource import SyncAPIResource, AsyncAPIResource
|
28
30
|
from ...._response import (
|
29
31
|
to_raw_response_wrapper,
|
@@ -79,7 +81,18 @@ class ScenariosResource(SyncAPIResource):
|
|
79
81
|
def create(
|
80
82
|
self,
|
81
83
|
*,
|
82
|
-
|
84
|
+
component_id: str,
|
85
|
+
name: str,
|
86
|
+
characters: Iterable[object] | NotGiven = NOT_GIVEN,
|
87
|
+
context: str | NotGiven = NOT_GIVEN,
|
88
|
+
description: str | NotGiven = NOT_GIVEN,
|
89
|
+
final_answer_prompt: str | NotGiven = NOT_GIVEN,
|
90
|
+
format: str | NotGiven = NOT_GIVEN,
|
91
|
+
goal: str | NotGiven = NOT_GIVEN,
|
92
|
+
greeting_character_id: str | NotGiven = NOT_GIVEN,
|
93
|
+
greeting_message: str | NotGiven = NOT_GIVEN,
|
94
|
+
requires_final_answer: bool | NotGiven = NOT_GIVEN,
|
95
|
+
tools: Iterable[object] | NotGiven = NOT_GIVEN,
|
83
96
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
84
97
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
85
98
|
extra_headers: Headers | None = None,
|
@@ -91,6 +104,30 @@ class ScenariosResource(SyncAPIResource):
|
|
91
104
|
Create a new scenario
|
92
105
|
|
93
106
|
Args:
|
107
|
+
component_id: Associated component ID
|
108
|
+
|
109
|
+
name: Scenario name
|
110
|
+
|
111
|
+
characters: Scenario characters
|
112
|
+
|
113
|
+
context: Scenario context
|
114
|
+
|
115
|
+
description: Scenario description
|
116
|
+
|
117
|
+
final_answer_prompt: Prompt for final answer
|
118
|
+
|
119
|
+
format: Interaction format
|
120
|
+
|
121
|
+
goal: Scenario goal
|
122
|
+
|
123
|
+
greeting_character_id: Character ID for greeting
|
124
|
+
|
125
|
+
greeting_message: Greeting message
|
126
|
+
|
127
|
+
requires_final_answer: Whether scenario requires a final answer
|
128
|
+
|
129
|
+
tools: Available tools
|
130
|
+
|
94
131
|
extra_headers: Send extra headers
|
95
132
|
|
96
133
|
extra_query: Add additional query parameters to the request
|
@@ -102,7 +139,23 @@ class ScenariosResource(SyncAPIResource):
|
|
102
139
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
103
140
|
return self._post(
|
104
141
|
"/api/v1/scenarios",
|
105
|
-
body=maybe_transform(
|
142
|
+
body=maybe_transform(
|
143
|
+
{
|
144
|
+
"component_id": component_id,
|
145
|
+
"name": name,
|
146
|
+
"characters": characters,
|
147
|
+
"context": context,
|
148
|
+
"description": description,
|
149
|
+
"final_answer_prompt": final_answer_prompt,
|
150
|
+
"format": format,
|
151
|
+
"goal": goal,
|
152
|
+
"greeting_character_id": greeting_character_id,
|
153
|
+
"greeting_message": greeting_message,
|
154
|
+
"requires_final_answer": requires_final_answer,
|
155
|
+
"tools": tools,
|
156
|
+
},
|
157
|
+
scenario_create_params.ScenarioCreateParams,
|
158
|
+
),
|
106
159
|
options=make_request_options(
|
107
160
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
108
161
|
),
|
@@ -147,7 +200,18 @@ class ScenariosResource(SyncAPIResource):
|
|
147
200
|
self,
|
148
201
|
id: str,
|
149
202
|
*,
|
150
|
-
|
203
|
+
component_id: str,
|
204
|
+
name: str,
|
205
|
+
characters: Iterable[object] | NotGiven = NOT_GIVEN,
|
206
|
+
context: str | NotGiven = NOT_GIVEN,
|
207
|
+
description: str | NotGiven = NOT_GIVEN,
|
208
|
+
final_answer_prompt: str | NotGiven = NOT_GIVEN,
|
209
|
+
format: str | NotGiven = NOT_GIVEN,
|
210
|
+
goal: str | NotGiven = NOT_GIVEN,
|
211
|
+
greeting_character_id: str | NotGiven = NOT_GIVEN,
|
212
|
+
greeting_message: str | NotGiven = NOT_GIVEN,
|
213
|
+
requires_final_answer: bool | NotGiven = NOT_GIVEN,
|
214
|
+
tools: Iterable[object] | NotGiven = NOT_GIVEN,
|
151
215
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
152
216
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
153
217
|
extra_headers: Headers | None = None,
|
@@ -159,6 +223,30 @@ class ScenariosResource(SyncAPIResource):
|
|
159
223
|
Update scenario
|
160
224
|
|
161
225
|
Args:
|
226
|
+
component_id: Associated component ID
|
227
|
+
|
228
|
+
name: Scenario name
|
229
|
+
|
230
|
+
characters: Scenario characters
|
231
|
+
|
232
|
+
context: Scenario context
|
233
|
+
|
234
|
+
description: Scenario description
|
235
|
+
|
236
|
+
final_answer_prompt: Prompt for final answer
|
237
|
+
|
238
|
+
format: Interaction format
|
239
|
+
|
240
|
+
goal: Scenario goal
|
241
|
+
|
242
|
+
greeting_character_id: Character ID for greeting
|
243
|
+
|
244
|
+
greeting_message: Greeting message
|
245
|
+
|
246
|
+
requires_final_answer: Whether scenario requires a final answer
|
247
|
+
|
248
|
+
tools: Available tools
|
249
|
+
|
162
250
|
extra_headers: Send extra headers
|
163
251
|
|
164
252
|
extra_query: Add additional query parameters to the request
|
@@ -172,7 +260,23 @@ class ScenariosResource(SyncAPIResource):
|
|
172
260
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
173
261
|
return self._put(
|
174
262
|
f"/api/v1/scenarios/{id}",
|
175
|
-
body=maybe_transform(
|
263
|
+
body=maybe_transform(
|
264
|
+
{
|
265
|
+
"component_id": component_id,
|
266
|
+
"name": name,
|
267
|
+
"characters": characters,
|
268
|
+
"context": context,
|
269
|
+
"description": description,
|
270
|
+
"final_answer_prompt": final_answer_prompt,
|
271
|
+
"format": format,
|
272
|
+
"goal": goal,
|
273
|
+
"greeting_character_id": greeting_character_id,
|
274
|
+
"greeting_message": greeting_message,
|
275
|
+
"requires_final_answer": requires_final_answer,
|
276
|
+
"tools": tools,
|
277
|
+
},
|
278
|
+
scenario_update_params.ScenarioUpdateParams,
|
279
|
+
),
|
176
280
|
options=make_request_options(
|
177
281
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
178
282
|
),
|
@@ -269,6 +373,8 @@ class ScenariosResource(SyncAPIResource):
|
|
269
373
|
self,
|
270
374
|
id: str,
|
271
375
|
*,
|
376
|
+
conversation_history: Iterable[object],
|
377
|
+
final_answer: str | NotGiven = NOT_GIVEN,
|
272
378
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
273
379
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
274
380
|
extra_headers: Headers | None = None,
|
@@ -277,7 +383,13 @@ class ScenariosResource(SyncAPIResource):
|
|
277
383
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
278
384
|
) -> None:
|
279
385
|
"""
|
386
|
+
Submit scenario answer
|
387
|
+
|
280
388
|
Args:
|
389
|
+
conversation_history: Conversation history
|
390
|
+
|
391
|
+
final_answer: Final answer for the scenario
|
392
|
+
|
281
393
|
extra_headers: Send extra headers
|
282
394
|
|
283
395
|
extra_query: Add additional query parameters to the request
|
@@ -291,6 +403,13 @@ class ScenariosResource(SyncAPIResource):
|
|
291
403
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
292
404
|
return self._post(
|
293
405
|
f"/api/v1/scenarios/{id}/submit",
|
406
|
+
body=maybe_transform(
|
407
|
+
{
|
408
|
+
"conversation_history": conversation_history,
|
409
|
+
"final_answer": final_answer,
|
410
|
+
},
|
411
|
+
scenario_submit_params.ScenarioSubmitParams,
|
412
|
+
),
|
294
413
|
options=make_request_options(
|
295
414
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
296
415
|
),
|
@@ -333,7 +452,18 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
333
452
|
async def create(
|
334
453
|
self,
|
335
454
|
*,
|
336
|
-
|
455
|
+
component_id: str,
|
456
|
+
name: str,
|
457
|
+
characters: Iterable[object] | NotGiven = NOT_GIVEN,
|
458
|
+
context: str | NotGiven = NOT_GIVEN,
|
459
|
+
description: str | NotGiven = NOT_GIVEN,
|
460
|
+
final_answer_prompt: str | NotGiven = NOT_GIVEN,
|
461
|
+
format: str | NotGiven = NOT_GIVEN,
|
462
|
+
goal: str | NotGiven = NOT_GIVEN,
|
463
|
+
greeting_character_id: str | NotGiven = NOT_GIVEN,
|
464
|
+
greeting_message: str | NotGiven = NOT_GIVEN,
|
465
|
+
requires_final_answer: bool | NotGiven = NOT_GIVEN,
|
466
|
+
tools: Iterable[object] | NotGiven = NOT_GIVEN,
|
337
467
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
338
468
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
339
469
|
extra_headers: Headers | None = None,
|
@@ -345,6 +475,30 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
345
475
|
Create a new scenario
|
346
476
|
|
347
477
|
Args:
|
478
|
+
component_id: Associated component ID
|
479
|
+
|
480
|
+
name: Scenario name
|
481
|
+
|
482
|
+
characters: Scenario characters
|
483
|
+
|
484
|
+
context: Scenario context
|
485
|
+
|
486
|
+
description: Scenario description
|
487
|
+
|
488
|
+
final_answer_prompt: Prompt for final answer
|
489
|
+
|
490
|
+
format: Interaction format
|
491
|
+
|
492
|
+
goal: Scenario goal
|
493
|
+
|
494
|
+
greeting_character_id: Character ID for greeting
|
495
|
+
|
496
|
+
greeting_message: Greeting message
|
497
|
+
|
498
|
+
requires_final_answer: Whether scenario requires a final answer
|
499
|
+
|
500
|
+
tools: Available tools
|
501
|
+
|
348
502
|
extra_headers: Send extra headers
|
349
503
|
|
350
504
|
extra_query: Add additional query parameters to the request
|
@@ -356,7 +510,23 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
356
510
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
357
511
|
return await self._post(
|
358
512
|
"/api/v1/scenarios",
|
359
|
-
body=await async_maybe_transform(
|
513
|
+
body=await async_maybe_transform(
|
514
|
+
{
|
515
|
+
"component_id": component_id,
|
516
|
+
"name": name,
|
517
|
+
"characters": characters,
|
518
|
+
"context": context,
|
519
|
+
"description": description,
|
520
|
+
"final_answer_prompt": final_answer_prompt,
|
521
|
+
"format": format,
|
522
|
+
"goal": goal,
|
523
|
+
"greeting_character_id": greeting_character_id,
|
524
|
+
"greeting_message": greeting_message,
|
525
|
+
"requires_final_answer": requires_final_answer,
|
526
|
+
"tools": tools,
|
527
|
+
},
|
528
|
+
scenario_create_params.ScenarioCreateParams,
|
529
|
+
),
|
360
530
|
options=make_request_options(
|
361
531
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
362
532
|
),
|
@@ -401,7 +571,18 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
401
571
|
self,
|
402
572
|
id: str,
|
403
573
|
*,
|
404
|
-
|
574
|
+
component_id: str,
|
575
|
+
name: str,
|
576
|
+
characters: Iterable[object] | NotGiven = NOT_GIVEN,
|
577
|
+
context: str | NotGiven = NOT_GIVEN,
|
578
|
+
description: str | NotGiven = NOT_GIVEN,
|
579
|
+
final_answer_prompt: str | NotGiven = NOT_GIVEN,
|
580
|
+
format: str | NotGiven = NOT_GIVEN,
|
581
|
+
goal: str | NotGiven = NOT_GIVEN,
|
582
|
+
greeting_character_id: str | NotGiven = NOT_GIVEN,
|
583
|
+
greeting_message: str | NotGiven = NOT_GIVEN,
|
584
|
+
requires_final_answer: bool | NotGiven = NOT_GIVEN,
|
585
|
+
tools: Iterable[object] | NotGiven = NOT_GIVEN,
|
405
586
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
406
587
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
407
588
|
extra_headers: Headers | None = None,
|
@@ -413,6 +594,30 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
413
594
|
Update scenario
|
414
595
|
|
415
596
|
Args:
|
597
|
+
component_id: Associated component ID
|
598
|
+
|
599
|
+
name: Scenario name
|
600
|
+
|
601
|
+
characters: Scenario characters
|
602
|
+
|
603
|
+
context: Scenario context
|
604
|
+
|
605
|
+
description: Scenario description
|
606
|
+
|
607
|
+
final_answer_prompt: Prompt for final answer
|
608
|
+
|
609
|
+
format: Interaction format
|
610
|
+
|
611
|
+
goal: Scenario goal
|
612
|
+
|
613
|
+
greeting_character_id: Character ID for greeting
|
614
|
+
|
615
|
+
greeting_message: Greeting message
|
616
|
+
|
617
|
+
requires_final_answer: Whether scenario requires a final answer
|
618
|
+
|
619
|
+
tools: Available tools
|
620
|
+
|
416
621
|
extra_headers: Send extra headers
|
417
622
|
|
418
623
|
extra_query: Add additional query parameters to the request
|
@@ -426,7 +631,23 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
426
631
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
427
632
|
return await self._put(
|
428
633
|
f"/api/v1/scenarios/{id}",
|
429
|
-
body=await async_maybe_transform(
|
634
|
+
body=await async_maybe_transform(
|
635
|
+
{
|
636
|
+
"component_id": component_id,
|
637
|
+
"name": name,
|
638
|
+
"characters": characters,
|
639
|
+
"context": context,
|
640
|
+
"description": description,
|
641
|
+
"final_answer_prompt": final_answer_prompt,
|
642
|
+
"format": format,
|
643
|
+
"goal": goal,
|
644
|
+
"greeting_character_id": greeting_character_id,
|
645
|
+
"greeting_message": greeting_message,
|
646
|
+
"requires_final_answer": requires_final_answer,
|
647
|
+
"tools": tools,
|
648
|
+
},
|
649
|
+
scenario_update_params.ScenarioUpdateParams,
|
650
|
+
),
|
430
651
|
options=make_request_options(
|
431
652
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
432
653
|
),
|
@@ -523,6 +744,8 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
523
744
|
self,
|
524
745
|
id: str,
|
525
746
|
*,
|
747
|
+
conversation_history: Iterable[object],
|
748
|
+
final_answer: str | NotGiven = NOT_GIVEN,
|
526
749
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
527
750
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
528
751
|
extra_headers: Headers | None = None,
|
@@ -531,7 +754,13 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
531
754
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
532
755
|
) -> None:
|
533
756
|
"""
|
757
|
+
Submit scenario answer
|
758
|
+
|
534
759
|
Args:
|
760
|
+
conversation_history: Conversation history
|
761
|
+
|
762
|
+
final_answer: Final answer for the scenario
|
763
|
+
|
535
764
|
extra_headers: Send extra headers
|
536
765
|
|
537
766
|
extra_query: Add additional query parameters to the request
|
@@ -545,6 +774,13 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
545
774
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
546
775
|
return await self._post(
|
547
776
|
f"/api/v1/scenarios/{id}/submit",
|
777
|
+
body=await async_maybe_transform(
|
778
|
+
{
|
779
|
+
"conversation_history": conversation_history,
|
780
|
+
"final_answer": final_answer,
|
781
|
+
},
|
782
|
+
scenario_submit_params.ScenarioSubmitParams,
|
783
|
+
),
|
548
784
|
options=make_request_options(
|
549
785
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
550
786
|
),
|
@@ -18,11 +18,13 @@ from .embed_get_theme_params import EmbedGetThemeParams as EmbedGetThemeParams
|
|
18
18
|
from .material_create_params import MaterialCreateParams as MaterialCreateParams
|
19
19
|
from .material_list_response import MaterialListResponse as MaterialListResponse
|
20
20
|
from .scenario_create_params import ScenarioCreateParams as ScenarioCreateParams
|
21
|
+
from .scenario_submit_params import ScenarioSubmitParams as ScenarioSubmitParams
|
21
22
|
from .scenario_update_params import ScenarioUpdateParams as ScenarioUpdateParams
|
22
23
|
from .usage_get_stats_params import UsageGetStatsParams as UsageGetStatsParams
|
23
24
|
from .component_create_params import ComponentCreateParams as ComponentCreateParams
|
24
25
|
from .component_list_response import ComponentListResponse as ComponentListResponse
|
25
26
|
from .component_update_params import ComponentUpdateParams as ComponentUpdateParams
|
27
|
+
from .explainer_create_params import ExplainerCreateParams as ExplainerCreateParams
|
26
28
|
from .chat_send_message_params import ChatSendMessageParams as ChatSendMessageParams
|
27
29
|
from .component_embed_response import ComponentEmbedResponse as ComponentEmbedResponse
|
28
30
|
from .flashcard_get_all_params import FlashcardGetAllParams as FlashcardGetAllParams
|
@@ -109,6 +109,9 @@ class ConfigFlashcardsConfigDto(TypedDict, total=False):
|
|
109
109
|
max_review_interval: Annotated[float, PropertyInfo(alias="maxReviewInterval")]
|
110
110
|
"""Maximum review interval in days"""
|
111
111
|
|
112
|
+
model: str
|
113
|
+
"""AI model to use for flashcard generation"""
|
114
|
+
|
112
115
|
total_flashcards: Annotated[float, PropertyInfo(alias="totalFlashcards")]
|
113
116
|
"""Total number of flashcards to generate"""
|
114
117
|
|
@@ -137,9 +140,15 @@ class ConfigScenariosConfigDtoTool(TypedDict, total=False):
|
|
137
140
|
name: Required[str]
|
138
141
|
"""Tool name"""
|
139
142
|
|
143
|
+
data_format: Annotated[str, PropertyInfo(alias="dataFormat")]
|
144
|
+
"""Data format provided by the tool"""
|
145
|
+
|
140
146
|
description: str
|
141
147
|
"""Tool description"""
|
142
148
|
|
149
|
+
type: str
|
150
|
+
"""Tool type"""
|
151
|
+
|
143
152
|
|
144
153
|
class ConfigScenariosConfigDto(TypedDict, total=False):
|
145
154
|
characters: Iterable[ConfigScenariosConfigDtoCharacter]
|
@@ -175,6 +184,9 @@ class ConfigScenariosConfigDto(TypedDict, total=False):
|
|
175
184
|
materials: List[str]
|
176
185
|
"""Material IDs"""
|
177
186
|
|
187
|
+
model: str
|
188
|
+
"""AI model to use for scenario generation"""
|
189
|
+
|
178
190
|
placeholder_text: Annotated[str, PropertyInfo(alias="placeholderText")]
|
179
191
|
"""Placeholder text"""
|
180
192
|
|
@@ -226,6 +238,9 @@ class ConfigPracticeTestConfigDto(TypedDict, total=False):
|
|
226
238
|
max_attempts: Annotated[float, PropertyInfo(alias="maxAttempts")]
|
227
239
|
"""Maximum attempts allowed"""
|
228
240
|
|
241
|
+
model: str
|
242
|
+
"""AI model to use for question generation and grading"""
|
243
|
+
|
229
244
|
passing_score: Annotated[float, PropertyInfo(alias="passingScore")]
|
230
245
|
"""Passing score percentage"""
|
231
246
|
|
@@ -254,29 +269,68 @@ class ConfigPracticeTestConfigDto(TypedDict, total=False):
|
|
254
269
|
|
255
270
|
|
256
271
|
class ConfigAudioRecapConfigDto(TypedDict, total=False):
|
272
|
+
duration: float
|
273
|
+
"""Duration of audio recap in minutes"""
|
274
|
+
|
257
275
|
folders: List[str]
|
258
276
|
"""Folder IDs"""
|
259
277
|
|
260
|
-
|
261
|
-
"""
|
278
|
+
is_multi_voice: Annotated[bool, PropertyInfo(alias="isMultiVoice")]
|
279
|
+
"""Enable multi-voice conversation mode"""
|
262
280
|
|
263
281
|
materials: List[str]
|
264
282
|
"""Material IDs"""
|
265
283
|
|
266
|
-
|
267
|
-
"""
|
284
|
+
model: str
|
285
|
+
"""AI model to use for generation"""
|
286
|
+
|
287
|
+
num_parts: Annotated[float, PropertyInfo(alias="numParts")]
|
288
|
+
"""Number of parts to split the audio into"""
|
289
|
+
|
290
|
+
recap_type: Annotated[Literal["SUMMARY", "LECTURE", "PODCAST", "AUDIO_BOOK"], PropertyInfo(alias="recapType")]
|
291
|
+
"""Type of audio recap"""
|
292
|
+
|
293
|
+
theme: str
|
294
|
+
"""Theme or style for the audio recap"""
|
268
295
|
|
269
|
-
|
270
|
-
"""
|
296
|
+
topic: str
|
297
|
+
"""Specific topic to focus on"""
|
298
|
+
|
299
|
+
voice1: str
|
300
|
+
"""Primary voice for narration"""
|
301
|
+
|
302
|
+
voice2: str
|
303
|
+
"""Secondary voice for multi-voice mode"""
|
271
304
|
|
272
305
|
|
273
306
|
class ConfigExplainersConfigDto(TypedDict, total=False):
|
274
307
|
folders: List[str]
|
275
308
|
"""Folder IDs"""
|
276
309
|
|
310
|
+
image_search: Annotated[bool, PropertyInfo(alias="imageSearch")]
|
311
|
+
"""Enable image search for visuals"""
|
312
|
+
|
277
313
|
materials: List[str]
|
278
314
|
"""Material IDs"""
|
279
315
|
|
316
|
+
model: str
|
317
|
+
"""AI model to use for generation"""
|
318
|
+
|
319
|
+
style: str
|
320
|
+
"""Video style"""
|
321
|
+
|
322
|
+
target_length: Annotated[float, PropertyInfo(alias="targetLength")]
|
323
|
+
"""Target length in seconds"""
|
324
|
+
|
325
|
+
title: str
|
326
|
+
"""Video title (defaults to component name if not provided)"""
|
327
|
+
|
328
|
+
vertical_video: Annotated[bool, PropertyInfo(alias="verticalVideo")]
|
329
|
+
"""Create vertical video format (9:16)"""
|
330
|
+
|
331
|
+
web_search: Annotated[bool, PropertyInfo(alias="webSearch")]
|
332
|
+
"""Enable web search for additional content"""
|
333
|
+
|
280
334
|
|
281
335
|
class ConfigUploadsConfigDto(TypedDict, total=False):
|
282
336
|
folder_id: Required[Annotated[str, PropertyInfo(alias="folderId")]]
|
@@ -0,0 +1,45 @@
|
|
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 List
|
6
|
+
from typing_extensions import Required, Annotated, TypedDict
|
7
|
+
|
8
|
+
from ..._utils import PropertyInfo
|
9
|
+
|
10
|
+
__all__ = ["ExplainerCreateParams"]
|
11
|
+
|
12
|
+
|
13
|
+
class ExplainerCreateParams(TypedDict, total=False):
|
14
|
+
component_id: Required[Annotated[str, PropertyInfo(alias="componentId")]]
|
15
|
+
"""Component ID"""
|
16
|
+
|
17
|
+
folder_ids: Required[Annotated[List[str], PropertyInfo(alias="folderIds")]]
|
18
|
+
"""Folder IDs to include"""
|
19
|
+
|
20
|
+
material_ids: Required[Annotated[List[str], PropertyInfo(alias="materialIds")]]
|
21
|
+
"""Material IDs to include"""
|
22
|
+
|
23
|
+
target_length: Required[Annotated[float, PropertyInfo(alias="targetLength")]]
|
24
|
+
"""Target video length in seconds"""
|
25
|
+
|
26
|
+
title: Required[str]
|
27
|
+
"""Title for the explainer video"""
|
28
|
+
|
29
|
+
image_search: Annotated[bool, PropertyInfo(alias="imageSearch")]
|
30
|
+
"""Enable image search for visuals"""
|
31
|
+
|
32
|
+
model: str
|
33
|
+
"""AI model to use"""
|
34
|
+
|
35
|
+
style: str
|
36
|
+
"""Video style"""
|
37
|
+
|
38
|
+
user_id: Annotated[str, PropertyInfo(alias="userId")]
|
39
|
+
"""User ID"""
|
40
|
+
|
41
|
+
vertical_video: Annotated[bool, PropertyInfo(alias="verticalVideo")]
|
42
|
+
"""Create vertical video format (9:16)"""
|
43
|
+
|
44
|
+
web_search: Annotated[bool, PropertyInfo(alias="webSearch")]
|
45
|
+
"""Enable web search for additional content"""
|
@@ -2,10 +2,52 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
-
from
|
5
|
+
from typing import List
|
6
|
+
from typing_extensions import Literal, Required, Annotated, TypedDict
|
6
7
|
|
7
|
-
|
8
|
+
from ..._utils import PropertyInfo
|
9
|
+
|
10
|
+
__all__ = ["ExplainerHandleWebhookParams", "Video"]
|
8
11
|
|
9
12
|
|
10
13
|
class ExplainerHandleWebhookParams(TypedDict, total=False):
|
11
|
-
|
14
|
+
event: Required[Literal["video.completed", "video.progress", "video.failed"]]
|
15
|
+
"""Webhook event type"""
|
16
|
+
|
17
|
+
video: Required[Video]
|
18
|
+
"""Video data"""
|
19
|
+
|
20
|
+
|
21
|
+
class Video(TypedDict, total=False):
|
22
|
+
id: Required[str]
|
23
|
+
"""Video ID"""
|
24
|
+
|
25
|
+
image_sources: Annotated[object, PropertyInfo(alias="imageSources")]
|
26
|
+
"""Image sources"""
|
27
|
+
|
28
|
+
progress: float
|
29
|
+
"""Progress percentage"""
|
30
|
+
|
31
|
+
sections: List[str]
|
32
|
+
"""Video sections"""
|
33
|
+
|
34
|
+
stream_id: Annotated[str, PropertyInfo(alias="streamId")]
|
35
|
+
"""Stream ID"""
|
36
|
+
|
37
|
+
stream_url: Annotated[str, PropertyInfo(alias="streamUrl")]
|
38
|
+
"""Stream URL"""
|
39
|
+
|
40
|
+
thumbnail_url: Annotated[str, PropertyInfo(alias="thumbnailUrl")]
|
41
|
+
"""Thumbnail URL"""
|
42
|
+
|
43
|
+
transcript: str
|
44
|
+
"""Video transcript"""
|
45
|
+
|
46
|
+
video_url: Annotated[str, PropertyInfo(alias="videoUrl")]
|
47
|
+
"""Video URL"""
|
48
|
+
|
49
|
+
web_search_results: Annotated[object, PropertyInfo(alias="webSearchResults")]
|
50
|
+
"""Web search results"""
|
51
|
+
|
52
|
+
web_search_sources: Annotated[object, PropertyInfo(alias="webSearchSources")]
|
53
|
+
"""Web search sources"""
|
@@ -2,10 +2,47 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
-
from
|
5
|
+
from typing import Iterable
|
6
|
+
from typing_extensions import Required, Annotated, TypedDict
|
7
|
+
|
8
|
+
from ..._utils import PropertyInfo
|
6
9
|
|
7
10
|
__all__ = ["ScenarioCreateParams"]
|
8
11
|
|
9
12
|
|
10
13
|
class ScenarioCreateParams(TypedDict, total=False):
|
11
|
-
|
14
|
+
component_id: Required[Annotated[str, PropertyInfo(alias="componentId")]]
|
15
|
+
"""Associated component ID"""
|
16
|
+
|
17
|
+
name: Required[str]
|
18
|
+
"""Scenario name"""
|
19
|
+
|
20
|
+
characters: Iterable[object]
|
21
|
+
"""Scenario characters"""
|
22
|
+
|
23
|
+
context: str
|
24
|
+
"""Scenario context"""
|
25
|
+
|
26
|
+
description: str
|
27
|
+
"""Scenario description"""
|
28
|
+
|
29
|
+
final_answer_prompt: Annotated[str, PropertyInfo(alias="finalAnswerPrompt")]
|
30
|
+
"""Prompt for final answer"""
|
31
|
+
|
32
|
+
format: str
|
33
|
+
"""Interaction format"""
|
34
|
+
|
35
|
+
goal: str
|
36
|
+
"""Scenario goal"""
|
37
|
+
|
38
|
+
greeting_character_id: Annotated[str, PropertyInfo(alias="greetingCharacterId")]
|
39
|
+
"""Character ID for greeting"""
|
40
|
+
|
41
|
+
greeting_message: Annotated[str, PropertyInfo(alias="greetingMessage")]
|
42
|
+
"""Greeting message"""
|
43
|
+
|
44
|
+
requires_final_answer: Annotated[bool, PropertyInfo(alias="requiresFinalAnswer")]
|
45
|
+
"""Whether scenario requires a final answer"""
|
46
|
+
|
47
|
+
tools: Iterable[object]
|
48
|
+
"""Available tools"""
|
@@ -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 Iterable
|
6
|
+
from typing_extensions import Required, Annotated, TypedDict
|
7
|
+
|
8
|
+
from ..._utils import PropertyInfo
|
9
|
+
|
10
|
+
__all__ = ["ScenarioSubmitParams"]
|
11
|
+
|
12
|
+
|
13
|
+
class ScenarioSubmitParams(TypedDict, total=False):
|
14
|
+
conversation_history: Required[Annotated[Iterable[object], PropertyInfo(alias="conversationHistory")]]
|
15
|
+
"""Conversation history"""
|
16
|
+
|
17
|
+
final_answer: Annotated[str, PropertyInfo(alias="finalAnswer")]
|
18
|
+
"""Final answer for the scenario"""
|
@@ -2,10 +2,47 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
-
from
|
5
|
+
from typing import Iterable
|
6
|
+
from typing_extensions import Required, Annotated, TypedDict
|
7
|
+
|
8
|
+
from ..._utils import PropertyInfo
|
6
9
|
|
7
10
|
__all__ = ["ScenarioUpdateParams"]
|
8
11
|
|
9
12
|
|
10
13
|
class ScenarioUpdateParams(TypedDict, total=False):
|
11
|
-
|
14
|
+
component_id: Required[Annotated[str, PropertyInfo(alias="componentId")]]
|
15
|
+
"""Associated component ID"""
|
16
|
+
|
17
|
+
name: Required[str]
|
18
|
+
"""Scenario name"""
|
19
|
+
|
20
|
+
characters: Iterable[object]
|
21
|
+
"""Scenario characters"""
|
22
|
+
|
23
|
+
context: str
|
24
|
+
"""Scenario context"""
|
25
|
+
|
26
|
+
description: str
|
27
|
+
"""Scenario description"""
|
28
|
+
|
29
|
+
final_answer_prompt: Annotated[str, PropertyInfo(alias="finalAnswerPrompt")]
|
30
|
+
"""Prompt for final answer"""
|
31
|
+
|
32
|
+
format: str
|
33
|
+
"""Interaction format"""
|
34
|
+
|
35
|
+
goal: str
|
36
|
+
"""Scenario goal"""
|
37
|
+
|
38
|
+
greeting_character_id: Annotated[str, PropertyInfo(alias="greetingCharacterId")]
|
39
|
+
"""Character ID for greeting"""
|
40
|
+
|
41
|
+
greeting_message: Annotated[str, PropertyInfo(alias="greetingMessage")]
|
42
|
+
"""Greeting message"""
|
43
|
+
|
44
|
+
requires_final_answer: Annotated[bool, PropertyInfo(alias="requiresFinalAnswer")]
|
45
|
+
"""Whether scenario requires a final answer"""
|
46
|
+
|
47
|
+
tools: Iterable[object]
|
48
|
+
"""Available tools"""
|
@@ -2,10 +2,47 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
-
from
|
5
|
+
from typing import Iterable
|
6
|
+
from typing_extensions import Required, Annotated, TypedDict
|
7
|
+
|
8
|
+
from ...._utils import PropertyInfo
|
6
9
|
|
7
10
|
__all__ = ["ComponentUpdateParams"]
|
8
11
|
|
9
12
|
|
10
13
|
class ComponentUpdateParams(TypedDict, total=False):
|
11
|
-
|
14
|
+
body_component_id: Required[Annotated[str, PropertyInfo(alias="componentId")]]
|
15
|
+
"""Associated component ID"""
|
16
|
+
|
17
|
+
name: Required[str]
|
18
|
+
"""Scenario name"""
|
19
|
+
|
20
|
+
characters: Iterable[object]
|
21
|
+
"""Scenario characters"""
|
22
|
+
|
23
|
+
context: str
|
24
|
+
"""Scenario context"""
|
25
|
+
|
26
|
+
description: str
|
27
|
+
"""Scenario description"""
|
28
|
+
|
29
|
+
final_answer_prompt: Annotated[str, PropertyInfo(alias="finalAnswerPrompt")]
|
30
|
+
"""Prompt for final answer"""
|
31
|
+
|
32
|
+
format: str
|
33
|
+
"""Interaction format"""
|
34
|
+
|
35
|
+
goal: str
|
36
|
+
"""Scenario goal"""
|
37
|
+
|
38
|
+
greeting_character_id: Annotated[str, PropertyInfo(alias="greetingCharacterId")]
|
39
|
+
"""Character ID for greeting"""
|
40
|
+
|
41
|
+
greeting_message: Annotated[str, PropertyInfo(alias="greetingMessage")]
|
42
|
+
"""Greeting message"""
|
43
|
+
|
44
|
+
requires_final_answer: Annotated[bool, PropertyInfo(alias="requiresFinalAnswer")]
|
45
|
+
"""Whether scenario requires a final answer"""
|
46
|
+
|
47
|
+
tools: Iterable[object]
|
48
|
+
"""Available tools"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: studyfetch_sdk
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.0a5
|
4
4
|
Summary: The official Python library for the studyfetch-sdk API
|
5
5
|
Project-URL: Homepage, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
|
6
6
|
Project-URL: Repository, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
|
@@ -11,7 +11,7 @@ studyfetch_sdk/_resource.py,sha256=y0aoAqMIYwTAwStuxbpO8XpTPnrSNQQ_ZcgiH5xcntg,1
|
|
11
11
|
studyfetch_sdk/_response.py,sha256=6ph8tSkqF5pNbTo_2Zhizhq2O-Eb67TcksHwyg3aXdc,28864
|
12
12
|
studyfetch_sdk/_streaming.py,sha256=HZoENuPVzWhBn24eH3lnMCvRbWN0EPwvhWYfdlJfw0A,10128
|
13
13
|
studyfetch_sdk/_types.py,sha256=6nvqHGarRGuhs_FL8tJ8sGXXD8XWajNynT2K78GxRUI,6205
|
14
|
-
studyfetch_sdk/_version.py,sha256=
|
14
|
+
studyfetch_sdk/_version.py,sha256=P9g-XswlFnHQJUeiV28qK7KIuczpCj7zMFGKkkZHO1U,174
|
15
15
|
studyfetch_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
16
|
studyfetch_sdk/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
|
17
17
|
studyfetch_sdk/_utils/_logs.py,sha256=EoZgOiIkpf2WB_0Ts0Ti7G3o_25v7IsPf_q-yEU6sbY,798
|
@@ -27,7 +27,7 @@ studyfetch_sdk/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
|
|
27
27
|
studyfetch_sdk/resources/__init__.py,sha256=TSJ6b8GNHShyK5w7efHV93u1bY2jYVySQRa2zKc1dKM,500
|
28
28
|
studyfetch_sdk/resources/v1/__init__.py,sha256=Xbao5pcvo3A7m4Px9Xts0hh-DX1HKq2E1-TUM78plbA,6572
|
29
29
|
studyfetch_sdk/resources/v1/components.py,sha256=omSiBUsNpgsPcp-aACKs_itOdKw7Nbj2ASV4W5NAnwQ,35554
|
30
|
-
studyfetch_sdk/resources/v1/explainers.py,sha256=
|
30
|
+
studyfetch_sdk/resources/v1/explainers.py,sha256=OvbLxUmr5Iac6bl7kF2eV0e7hMcO5MnYLRj8NrYtS6c,12889
|
31
31
|
studyfetch_sdk/resources/v1/flashcards.py,sha256=-RKKuU3SQEZtXeCr1SasxuK1pMQO2FZzesvBeIoCGqo,29317
|
32
32
|
studyfetch_sdk/resources/v1/folders.py,sha256=o43HhcVhqF3t7xWMFFNIiMPElhoqkXtaCTVjEE5s5so,27436
|
33
33
|
studyfetch_sdk/resources/v1/usage.py,sha256=78OlA8pT13Ggja84nHdJJQoKSn7GjDO3SefPyxsCYWo,18513
|
@@ -51,8 +51,8 @@ studyfetch_sdk/resources/v1/materials/materials.py,sha256=k6eflgtL96qQ3veEC6YO3e
|
|
51
51
|
studyfetch_sdk/resources/v1/materials/test.py,sha256=eGcjGYvPlrlZGrU6AnvZZX5qZ3aLgZgxIrNspXC1rnE,11355
|
52
52
|
studyfetch_sdk/resources/v1/materials/upload.py,sha256=5GyF1aIaxUHCKTiTz-12IbKF6IcFv4xZWAjVJFpT27o,15726
|
53
53
|
studyfetch_sdk/resources/v1/scenarios/__init__.py,sha256=WrMn3vQJgHGQzWKq5SRUTMMvRd4p15Bt5JjZpHhKHZs,2071
|
54
|
-
studyfetch_sdk/resources/v1/scenarios/component.py,sha256=
|
55
|
-
studyfetch_sdk/resources/v1/scenarios/scenarios.py,sha256=
|
54
|
+
studyfetch_sdk/resources/v1/scenarios/component.py,sha256=RvB07dib9WtMY3Irr5UPjQIG1Bue9vGVPyhMrSKxwqk,16333
|
55
|
+
studyfetch_sdk/resources/v1/scenarios/scenarios.py,sha256=bta8bhoLJMo480AiJwoTA2ucs26-f7qUewEQtjGKmZ8,34807
|
56
56
|
studyfetch_sdk/resources/v1/scenarios/sessions.py,sha256=nTa6kBd5SoCBTm4DoIdH_u_nj1bM5dIbo2yAy-rMzKg,8949
|
57
57
|
studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py,sha256=rTtsEfGVta9DIHDkyL4p32yLV21bFcxkE-LRb_bpFvU,1041
|
58
58
|
studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py,sha256=2wj6bWW4NXw3EjsCDQySGYOAym64QIUzLqp6UelJsqo,3773
|
@@ -64,11 +64,11 @@ studyfetch_sdk/resources/v1/upload/__init__.py,sha256=N5r6jpSMe43dezq-6RBAWLVlL3
|
|
64
64
|
studyfetch_sdk/resources/v1/upload/component.py,sha256=BbiKtJ9hC7c7_Wv6Q_Zi_BZJmcusWFRNvBKJqaB75yA,15493
|
65
65
|
studyfetch_sdk/resources/v1/upload/upload.py,sha256=RBkrsVi5_8qIqdYKypnSqj44ONvwW7u2XXIlpuJsKSg,3736
|
66
66
|
studyfetch_sdk/types/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
|
67
|
-
studyfetch_sdk/types/v1/__init__.py,sha256=
|
67
|
+
studyfetch_sdk/types/v1/__init__.py,sha256=ptidQei3WG8UBTlyXK3tJmtIwp8BzQcbx7rmru0o5EA,3798
|
68
68
|
studyfetch_sdk/types/v1/chat_retrieve_session_params.py,sha256=j_egNBvVvOwAHQGayY5002fE_KK1q775XuIKlokEBsQ,388
|
69
69
|
studyfetch_sdk/types/v1/chat_send_message_params.py,sha256=BRxjNsVXsqcBbdrp4J5TQGjjNPJ_bz7uXw3pnc-x0oU,1454
|
70
70
|
studyfetch_sdk/types/v1/chat_stream_params.py,sha256=Aqp2Vdsa35PAH-75kaO_ZYlkqGrCgDZ5EyYTTLRAJoE,695
|
71
|
-
studyfetch_sdk/types/v1/component_create_params.py,sha256=
|
71
|
+
studyfetch_sdk/types/v1/component_create_params.py,sha256=ec6urTYr_9KEvITea9qThEIVFgWhRbY8tUhyk2RQHQQ,10496
|
72
72
|
studyfetch_sdk/types/v1/component_create_response.py,sha256=zfrTvGBNGY_N5doR9CAg6DgJgFWXoi4iXiiwEgvipKo,1194
|
73
73
|
studyfetch_sdk/types/v1/component_embed_params.py,sha256=hw7NcUe_QeYxrJ46qojicj8OVDY1KpRGHBPKgfx5FZc,3052
|
74
74
|
studyfetch_sdk/types/v1/component_embed_response.py,sha256=PUr_rBcSsww_FFIAUh6hjXWzCJ6kMENY970dDNtpnpY,906
|
@@ -79,7 +79,8 @@ studyfetch_sdk/types/v1/component_update_params.py,sha256=IkSFyldrto9H_F_4GWIGG1
|
|
79
79
|
studyfetch_sdk/types/v1/component_update_response.py,sha256=Red-3gvU3gf0uxbxFCtk88D7zXgq_qpqMo-15w-fUh4,1194
|
80
80
|
studyfetch_sdk/types/v1/embed_get_theme_params.py,sha256=wKZn4X-Ne29dOrxEBkGThxBPTdhPTgb-CzV65KvSFVw,308
|
81
81
|
studyfetch_sdk/types/v1/embed_verify_params.py,sha256=hixgK7Uyhi2Oaj0t5Q5sbFVUYGdvmMsk_2-fu_2C2nw,314
|
82
|
-
studyfetch_sdk/types/v1/
|
82
|
+
studyfetch_sdk/types/v1/explainer_create_params.py,sha256=DfTTxdkaUezNpD3TwTSyWZDsqcj3ZQ_pi-NiFmhldCk,1365
|
83
|
+
studyfetch_sdk/types/v1/explainer_handle_webhook_params.py,sha256=FroVkIVnrp3n_Jf5q5gfl4OaL41gswNRG2EZHXaeekY,1426
|
83
84
|
studyfetch_sdk/types/v1/flashcard_batch_process_params.py,sha256=9rKglWAilYXnfqPSOdKLQWZ7DOrU45S20eLLGn6xsSk,1044
|
84
85
|
studyfetch_sdk/types/v1/flashcard_batch_process_response.py,sha256=UKredDT61O5KA56gvhbJlF1qa8LzrdpLrD4ulzQOFlw,891
|
85
86
|
studyfetch_sdk/types/v1/flashcard_get_algorithm_info_response.py,sha256=DXyISqmGJlqgjyrcAmjO2lrNFqFiwGSI6JPr6niSE0A,871
|
@@ -97,8 +98,9 @@ studyfetch_sdk/types/v1/material_get_download_url_params.py,sha256=7prrB3K-E4xAW
|
|
97
98
|
studyfetch_sdk/types/v1/material_list_params.py,sha256=8yd556-GB4Xw-NFGshxm_Hx-nIG-MAg4dPtn-W38w3k,388
|
98
99
|
studyfetch_sdk/types/v1/material_list_response.py,sha256=HHtjzeuZ3v0QrOQdUMFI7HRsKJ41n_jWk8N_JloDaIg,1827
|
99
100
|
studyfetch_sdk/types/v1/material_retrieve_response.py,sha256=LtW5GDV5KExzVY1QmR0K0yp60rVQibBbE7pPPEUe2G0,1647
|
100
|
-
studyfetch_sdk/types/v1/scenario_create_params.py,sha256=
|
101
|
-
studyfetch_sdk/types/v1/
|
101
|
+
studyfetch_sdk/types/v1/scenario_create_params.py,sha256=anCK913P4vYEtgY6GnxxxCxRnUazeV1H1NoyBV78sT8,1281
|
102
|
+
studyfetch_sdk/types/v1/scenario_submit_params.py,sha256=DV1s6zdCYFxS3s7_Ji-Y1CUddhaD-gsdQPqem0LZB0Y,585
|
103
|
+
studyfetch_sdk/types/v1/scenario_update_params.py,sha256=q-PB0dS3s2S9q_JCm46UWB-Dy2WVSUiAw3C6v6lq7XA,1281
|
102
104
|
studyfetch_sdk/types/v1/test_create_params.py,sha256=-MrR4d4Igyp7FD9xni5Rh_Gn3JgCZyYGagXUG3GDvQc,537
|
103
105
|
studyfetch_sdk/types/v1/test_retake_params.py,sha256=pSxTOQ8Io9D_ZquvrbwdbUGtpjG-idDfBd-28i6gQVM,379
|
104
106
|
studyfetch_sdk/types/v1/test_submit_answer_params.py,sha256=KnXliGsq5TTCZIno5It7rK5pi_qttEavBw86X_yhyj0,549
|
@@ -127,11 +129,11 @@ studyfetch_sdk/types/v1/organizations/logo/__init__.py,sha256=OKfJYcKb4NObdiRObq
|
|
127
129
|
studyfetch_sdk/types/v1/organizations/profile/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
|
128
130
|
studyfetch_sdk/types/v1/organizations/team/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
|
129
131
|
studyfetch_sdk/types/v1/scenarios/__init__.py,sha256=2DyrawNlb-TstNKw0gUMlQaNSq-UAUcLhmOGElM0l0U,207
|
130
|
-
studyfetch_sdk/types/v1/scenarios/component_update_params.py,sha256=
|
132
|
+
studyfetch_sdk/types/v1/scenarios/component_update_params.py,sha256=_Rs0wRJtrLMKyQCGH3hrpMjWG1fHJwD3QaTyeOfdZMA,1289
|
131
133
|
studyfetch_sdk/types/v1/scenarios/submissions/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
|
132
134
|
studyfetch_sdk/types/v1/tests/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
|
133
135
|
studyfetch_sdk/types/v1/upload/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
|
134
|
-
studyfetch_sdk-0.1.
|
135
|
-
studyfetch_sdk-0.1.
|
136
|
-
studyfetch_sdk-0.1.
|
137
|
-
studyfetch_sdk-0.1.
|
136
|
+
studyfetch_sdk-0.1.0a5.dist-info/METADATA,sha256=KDONVG9Y25XyGij3xjRNCpcA-ImW3qu89_nV9Etiz-4,14826
|
137
|
+
studyfetch_sdk-0.1.0a5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
138
|
+
studyfetch_sdk-0.1.0a5.dist-info/licenses/LICENSE,sha256=CsdbJMegH_AAWljUmVcwW0Cj_GyIm1hjw6qPqPnmdn4,11344
|
139
|
+
studyfetch_sdk-0.1.0a5.dist-info/RECORD,,
|
File without changes
|
File without changes
|