studyfetch-sdk 0.1.0a14__py3-none-any.whl → 0.1.0a15__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/components.py +0 -8
- studyfetch_sdk/resources/v1/materials/materials.py +76 -1
- studyfetch_sdk/resources/v1/upload/component.py +195 -7
- studyfetch_sdk/types/v1/__init__.py +1 -0
- studyfetch_sdk/types/v1/component_create_params.py +0 -3
- studyfetch_sdk/types/v1/material_search_params.py +27 -0
- studyfetch_sdk/types/v1/upload/__init__.py +6 -0
- studyfetch_sdk/types/v1/upload/component_complete_upload_params.py +20 -0
- studyfetch_sdk/types/v1/upload/component_get_presigned_url_params.py +23 -0
- studyfetch_sdk/types/v1/upload/component_get_presigned_url_response.py +15 -0
- studyfetch_sdk/types/v1/upload/component_upload_file_params.py +21 -0
- studyfetch_sdk/types/v1/upload/component_upload_url_params.py +23 -0
- {studyfetch_sdk-0.1.0a14.dist-info → studyfetch_sdk-0.1.0a15.dist-info}/METADATA +1 -1
- {studyfetch_sdk-0.1.0a14.dist-info → studyfetch_sdk-0.1.0a15.dist-info}/RECORD +17 -11
- {studyfetch_sdk-0.1.0a14.dist-info → studyfetch_sdk-0.1.0a15.dist-info}/WHEEL +0 -0
- {studyfetch_sdk-0.1.0a14.dist-info → studyfetch_sdk-0.1.0a15.dist-info}/licenses/LICENSE +0 -0
studyfetch_sdk/_version.py
CHANGED
@@ -56,7 +56,6 @@ class ComponentsResource(SyncAPIResource):
|
|
56
56
|
*,
|
57
57
|
config: component_create_params.Config,
|
58
58
|
name: str,
|
59
|
-
origin: Literal["chat", "classroom", "upload", "console", "api"],
|
60
59
|
type: Literal[
|
61
60
|
"chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"
|
62
61
|
],
|
@@ -77,8 +76,6 @@ class ComponentsResource(SyncAPIResource):
|
|
77
76
|
|
78
77
|
name: Name of the component
|
79
78
|
|
80
|
-
origin: Origin of the component
|
81
|
-
|
82
79
|
type: Type of component to create
|
83
80
|
|
84
81
|
description: Component description
|
@@ -99,7 +96,6 @@ class ComponentsResource(SyncAPIResource):
|
|
99
96
|
{
|
100
97
|
"config": config,
|
101
98
|
"name": name,
|
102
|
-
"origin": origin,
|
103
99
|
"type": type,
|
104
100
|
"description": description,
|
105
101
|
"metadata": metadata,
|
@@ -448,7 +444,6 @@ class AsyncComponentsResource(AsyncAPIResource):
|
|
448
444
|
*,
|
449
445
|
config: component_create_params.Config,
|
450
446
|
name: str,
|
451
|
-
origin: Literal["chat", "classroom", "upload", "console", "api"],
|
452
447
|
type: Literal[
|
453
448
|
"chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"
|
454
449
|
],
|
@@ -469,8 +464,6 @@ class AsyncComponentsResource(AsyncAPIResource):
|
|
469
464
|
|
470
465
|
name: Name of the component
|
471
466
|
|
472
|
-
origin: Origin of the component
|
473
|
-
|
474
467
|
type: Type of component to create
|
475
468
|
|
476
469
|
description: Component description
|
@@ -491,7 +484,6 @@ class AsyncComponentsResource(AsyncAPIResource):
|
|
491
484
|
{
|
492
485
|
"config": config,
|
493
486
|
"name": name,
|
494
|
-
"origin": origin,
|
495
487
|
"type": type,
|
496
488
|
"description": description,
|
497
489
|
"metadata": metadata,
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
+
from typing import List
|
6
|
+
|
5
7
|
import httpx
|
6
8
|
|
7
9
|
from .bulk import (
|
@@ -31,7 +33,12 @@ from .upload import (
|
|
31
33
|
from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
|
32
34
|
from ...._utils import maybe_transform, async_maybe_transform
|
33
35
|
from ...._compat import cached_property
|
34
|
-
from ....types.v1 import
|
36
|
+
from ....types.v1 import (
|
37
|
+
material_list_params,
|
38
|
+
material_create_params,
|
39
|
+
material_search_params,
|
40
|
+
material_get_download_url_params,
|
41
|
+
)
|
35
42
|
from ...._resource import SyncAPIResource, AsyncAPIResource
|
36
43
|
from ...._response import (
|
37
44
|
to_raw_response_wrapper,
|
@@ -418,6 +425,10 @@ class MaterialsResource(SyncAPIResource):
|
|
418
425
|
def search(
|
419
426
|
self,
|
420
427
|
*,
|
428
|
+
query: str,
|
429
|
+
folder_ids: List[str] | NotGiven = NOT_GIVEN,
|
430
|
+
material_ids: List[str] | NotGiven = NOT_GIVEN,
|
431
|
+
top_k: float | NotGiven = NOT_GIVEN,
|
421
432
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
422
433
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
423
434
|
extra_headers: Headers | None = None,
|
@@ -425,9 +436,39 @@ class MaterialsResource(SyncAPIResource):
|
|
425
436
|
extra_body: Body | None = None,
|
426
437
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
427
438
|
) -> None:
|
439
|
+
"""
|
440
|
+
Search materials using RAG
|
441
|
+
|
442
|
+
Args:
|
443
|
+
query: Search query
|
444
|
+
|
445
|
+
folder_ids: Optional: Limit search to materials within specific folders (includes
|
446
|
+
subfolders)
|
447
|
+
|
448
|
+
material_ids: Optional: Limit search to specific material IDs
|
449
|
+
|
450
|
+
top_k: Number of results to return (default: 5)
|
451
|
+
|
452
|
+
extra_headers: Send extra headers
|
453
|
+
|
454
|
+
extra_query: Add additional query parameters to the request
|
455
|
+
|
456
|
+
extra_body: Add additional JSON properties to the request
|
457
|
+
|
458
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
459
|
+
"""
|
428
460
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
429
461
|
return self._post(
|
430
462
|
"/api/v1/materials/search",
|
463
|
+
body=maybe_transform(
|
464
|
+
{
|
465
|
+
"query": query,
|
466
|
+
"folder_ids": folder_ids,
|
467
|
+
"material_ids": material_ids,
|
468
|
+
"top_k": top_k,
|
469
|
+
},
|
470
|
+
material_search_params.MaterialSearchParams,
|
471
|
+
),
|
431
472
|
options=make_request_options(
|
432
473
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
433
474
|
),
|
@@ -807,6 +848,10 @@ class AsyncMaterialsResource(AsyncAPIResource):
|
|
807
848
|
async def search(
|
808
849
|
self,
|
809
850
|
*,
|
851
|
+
query: str,
|
852
|
+
folder_ids: List[str] | NotGiven = NOT_GIVEN,
|
853
|
+
material_ids: List[str] | NotGiven = NOT_GIVEN,
|
854
|
+
top_k: float | NotGiven = NOT_GIVEN,
|
810
855
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
811
856
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
812
857
|
extra_headers: Headers | None = None,
|
@@ -814,9 +859,39 @@ class AsyncMaterialsResource(AsyncAPIResource):
|
|
814
859
|
extra_body: Body | None = None,
|
815
860
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
816
861
|
) -> None:
|
862
|
+
"""
|
863
|
+
Search materials using RAG
|
864
|
+
|
865
|
+
Args:
|
866
|
+
query: Search query
|
867
|
+
|
868
|
+
folder_ids: Optional: Limit search to materials within specific folders (includes
|
869
|
+
subfolders)
|
870
|
+
|
871
|
+
material_ids: Optional: Limit search to specific material IDs
|
872
|
+
|
873
|
+
top_k: Number of results to return (default: 5)
|
874
|
+
|
875
|
+
extra_headers: Send extra headers
|
876
|
+
|
877
|
+
extra_query: Add additional query parameters to the request
|
878
|
+
|
879
|
+
extra_body: Add additional JSON properties to the request
|
880
|
+
|
881
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
882
|
+
"""
|
817
883
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
818
884
|
return await self._post(
|
819
885
|
"/api/v1/materials/search",
|
886
|
+
body=await async_maybe_transform(
|
887
|
+
{
|
888
|
+
"query": query,
|
889
|
+
"folder_ids": folder_ids,
|
890
|
+
"material_ids": material_ids,
|
891
|
+
"top_k": top_k,
|
892
|
+
},
|
893
|
+
material_search_params.MaterialSearchParams,
|
894
|
+
),
|
820
895
|
options=make_request_options(
|
821
896
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
822
897
|
),
|
@@ -2,9 +2,12 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
+
from typing import Mapping, cast
|
6
|
+
|
5
7
|
import httpx
|
6
8
|
|
7
|
-
from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
|
9
|
+
from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven, FileTypes
|
10
|
+
from ...._utils import extract_files, maybe_transform, deepcopy_minimal, async_maybe_transform
|
8
11
|
from ...._compat import cached_property
|
9
12
|
from ...._resource import SyncAPIResource, AsyncAPIResource
|
10
13
|
from ...._response import (
|
@@ -14,6 +17,13 @@ from ...._response import (
|
|
14
17
|
async_to_streamed_response_wrapper,
|
15
18
|
)
|
16
19
|
from ...._base_client import make_request_options
|
20
|
+
from ....types.v1.upload import (
|
21
|
+
component_upload_url_params,
|
22
|
+
component_upload_file_params,
|
23
|
+
component_complete_upload_params,
|
24
|
+
component_get_presigned_url_params,
|
25
|
+
)
|
26
|
+
from ....types.v1.upload.component_get_presigned_url_response import ComponentGetPresignedURLResponse
|
17
27
|
|
18
28
|
__all__ = ["ComponentResource", "AsyncComponentResource"]
|
19
29
|
|
@@ -42,6 +52,9 @@ class ComponentResource(SyncAPIResource):
|
|
42
52
|
self,
|
43
53
|
component_id: str,
|
44
54
|
*,
|
55
|
+
material_id: str,
|
56
|
+
organization_id: str,
|
57
|
+
s3_key: str,
|
45
58
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
46
59
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
47
60
|
extra_headers: Headers | None = None,
|
@@ -50,7 +63,15 @@ class ComponentResource(SyncAPIResource):
|
|
50
63
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
51
64
|
) -> None:
|
52
65
|
"""
|
66
|
+
Complete a file upload after using presigned URL
|
67
|
+
|
53
68
|
Args:
|
69
|
+
material_id: The ID of the material that was uploaded
|
70
|
+
|
71
|
+
organization_id: The ID of the organization
|
72
|
+
|
73
|
+
s3_key: The S3 key of the uploaded file
|
74
|
+
|
54
75
|
extra_headers: Send extra headers
|
55
76
|
|
56
77
|
extra_query: Add additional query parameters to the request
|
@@ -64,6 +85,14 @@ class ComponentResource(SyncAPIResource):
|
|
64
85
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
65
86
|
return self._post(
|
66
87
|
f"/api/v1/upload/component/{component_id}/complete",
|
88
|
+
body=maybe_transform(
|
89
|
+
{
|
90
|
+
"material_id": material_id,
|
91
|
+
"organization_id": organization_id,
|
92
|
+
"s3_key": s3_key,
|
93
|
+
},
|
94
|
+
component_complete_upload_params.ComponentCompleteUploadParams,
|
95
|
+
),
|
67
96
|
options=make_request_options(
|
68
97
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
69
98
|
),
|
@@ -74,15 +103,29 @@ class ComponentResource(SyncAPIResource):
|
|
74
103
|
self,
|
75
104
|
component_id: str,
|
76
105
|
*,
|
106
|
+
content_type: str,
|
107
|
+
filename: str,
|
108
|
+
folder_id: str,
|
109
|
+
organization_id: str,
|
77
110
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
78
111
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
79
112
|
extra_headers: Headers | None = None,
|
80
113
|
extra_query: Query | None = None,
|
81
114
|
extra_body: Body | None = None,
|
82
115
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
83
|
-
) ->
|
116
|
+
) -> ComponentGetPresignedURLResponse:
|
84
117
|
"""
|
118
|
+
Get a presigned URL for direct file upload
|
119
|
+
|
85
120
|
Args:
|
121
|
+
content_type: The MIME type of the file
|
122
|
+
|
123
|
+
filename: The name of the file to upload
|
124
|
+
|
125
|
+
folder_id: The ID of the folder to upload to
|
126
|
+
|
127
|
+
organization_id: The ID of the organization
|
128
|
+
|
86
129
|
extra_headers: Send extra headers
|
87
130
|
|
88
131
|
extra_query: Add additional query parameters to the request
|
@@ -93,19 +136,30 @@ class ComponentResource(SyncAPIResource):
|
|
93
136
|
"""
|
94
137
|
if not component_id:
|
95
138
|
raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
|
96
|
-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
97
139
|
return self._post(
|
98
140
|
f"/api/v1/upload/component/{component_id}/presigned-url",
|
141
|
+
body=maybe_transform(
|
142
|
+
{
|
143
|
+
"content_type": content_type,
|
144
|
+
"filename": filename,
|
145
|
+
"folder_id": folder_id,
|
146
|
+
"organization_id": organization_id,
|
147
|
+
},
|
148
|
+
component_get_presigned_url_params.ComponentGetPresignedURLParams,
|
149
|
+
),
|
99
150
|
options=make_request_options(
|
100
151
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
101
152
|
),
|
102
|
-
cast_to=
|
153
|
+
cast_to=ComponentGetPresignedURLResponse,
|
103
154
|
)
|
104
155
|
|
105
156
|
def upload_file(
|
106
157
|
self,
|
107
158
|
component_id: str,
|
108
159
|
*,
|
160
|
+
file: FileTypes,
|
161
|
+
folder_id: str,
|
162
|
+
organization_id: str,
|
109
163
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
110
164
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
111
165
|
extra_headers: Headers | None = None,
|
@@ -114,7 +168,15 @@ class ComponentResource(SyncAPIResource):
|
|
114
168
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
115
169
|
) -> None:
|
116
170
|
"""
|
171
|
+
Upload a file to a component
|
172
|
+
|
117
173
|
Args:
|
174
|
+
file: The file to upload
|
175
|
+
|
176
|
+
folder_id: The ID of the folder to upload to
|
177
|
+
|
178
|
+
organization_id: The ID of the organization
|
179
|
+
|
118
180
|
extra_headers: Send extra headers
|
119
181
|
|
120
182
|
extra_query: Add additional query parameters to the request
|
@@ -126,8 +188,22 @@ class ComponentResource(SyncAPIResource):
|
|
126
188
|
if not component_id:
|
127
189
|
raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
|
128
190
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
191
|
+
body = deepcopy_minimal(
|
192
|
+
{
|
193
|
+
"file": file,
|
194
|
+
"folder_id": folder_id,
|
195
|
+
"organization_id": organization_id,
|
196
|
+
}
|
197
|
+
)
|
198
|
+
files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
|
199
|
+
# It should be noted that the actual Content-Type header that will be
|
200
|
+
# sent to the server will contain a `boundary` parameter, e.g.
|
201
|
+
# multipart/form-data; boundary=---abc--
|
202
|
+
extra_headers["Content-Type"] = "multipart/form-data"
|
129
203
|
return self._post(
|
130
204
|
f"/api/v1/upload/component/{component_id}/file",
|
205
|
+
body=maybe_transform(body, component_upload_file_params.ComponentUploadFileParams),
|
206
|
+
files=files,
|
131
207
|
options=make_request_options(
|
132
208
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
133
209
|
),
|
@@ -138,6 +214,10 @@ class ComponentResource(SyncAPIResource):
|
|
138
214
|
self,
|
139
215
|
component_id: str,
|
140
216
|
*,
|
217
|
+
folder_id: str,
|
218
|
+
name: str,
|
219
|
+
organization_id: str,
|
220
|
+
url: str,
|
141
221
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
142
222
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
143
223
|
extra_headers: Headers | None = None,
|
@@ -146,7 +226,17 @@ class ComponentResource(SyncAPIResource):
|
|
146
226
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
147
227
|
) -> None:
|
148
228
|
"""
|
229
|
+
Upload a file from URL to a component
|
230
|
+
|
149
231
|
Args:
|
232
|
+
folder_id: The ID of the folder to upload to
|
233
|
+
|
234
|
+
name: The name for the uploaded file
|
235
|
+
|
236
|
+
organization_id: The ID of the organization
|
237
|
+
|
238
|
+
url: The URL of the file to upload
|
239
|
+
|
150
240
|
extra_headers: Send extra headers
|
151
241
|
|
152
242
|
extra_query: Add additional query parameters to the request
|
@@ -160,6 +250,15 @@ class ComponentResource(SyncAPIResource):
|
|
160
250
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
161
251
|
return self._post(
|
162
252
|
f"/api/v1/upload/component/{component_id}/url",
|
253
|
+
body=maybe_transform(
|
254
|
+
{
|
255
|
+
"folder_id": folder_id,
|
256
|
+
"name": name,
|
257
|
+
"organization_id": organization_id,
|
258
|
+
"url": url,
|
259
|
+
},
|
260
|
+
component_upload_url_params.ComponentUploadURLParams,
|
261
|
+
),
|
163
262
|
options=make_request_options(
|
164
263
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
165
264
|
),
|
@@ -191,6 +290,9 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
191
290
|
self,
|
192
291
|
component_id: str,
|
193
292
|
*,
|
293
|
+
material_id: str,
|
294
|
+
organization_id: str,
|
295
|
+
s3_key: str,
|
194
296
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
195
297
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
196
298
|
extra_headers: Headers | None = None,
|
@@ -199,7 +301,15 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
199
301
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
200
302
|
) -> None:
|
201
303
|
"""
|
304
|
+
Complete a file upload after using presigned URL
|
305
|
+
|
202
306
|
Args:
|
307
|
+
material_id: The ID of the material that was uploaded
|
308
|
+
|
309
|
+
organization_id: The ID of the organization
|
310
|
+
|
311
|
+
s3_key: The S3 key of the uploaded file
|
312
|
+
|
203
313
|
extra_headers: Send extra headers
|
204
314
|
|
205
315
|
extra_query: Add additional query parameters to the request
|
@@ -213,6 +323,14 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
213
323
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
214
324
|
return await self._post(
|
215
325
|
f"/api/v1/upload/component/{component_id}/complete",
|
326
|
+
body=await async_maybe_transform(
|
327
|
+
{
|
328
|
+
"material_id": material_id,
|
329
|
+
"organization_id": organization_id,
|
330
|
+
"s3_key": s3_key,
|
331
|
+
},
|
332
|
+
component_complete_upload_params.ComponentCompleteUploadParams,
|
333
|
+
),
|
216
334
|
options=make_request_options(
|
217
335
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
218
336
|
),
|
@@ -223,15 +341,29 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
223
341
|
self,
|
224
342
|
component_id: str,
|
225
343
|
*,
|
344
|
+
content_type: str,
|
345
|
+
filename: str,
|
346
|
+
folder_id: str,
|
347
|
+
organization_id: str,
|
226
348
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
227
349
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
228
350
|
extra_headers: Headers | None = None,
|
229
351
|
extra_query: Query | None = None,
|
230
352
|
extra_body: Body | None = None,
|
231
353
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
232
|
-
) ->
|
354
|
+
) -> ComponentGetPresignedURLResponse:
|
233
355
|
"""
|
356
|
+
Get a presigned URL for direct file upload
|
357
|
+
|
234
358
|
Args:
|
359
|
+
content_type: The MIME type of the file
|
360
|
+
|
361
|
+
filename: The name of the file to upload
|
362
|
+
|
363
|
+
folder_id: The ID of the folder to upload to
|
364
|
+
|
365
|
+
organization_id: The ID of the organization
|
366
|
+
|
235
367
|
extra_headers: Send extra headers
|
236
368
|
|
237
369
|
extra_query: Add additional query parameters to the request
|
@@ -242,19 +374,30 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
242
374
|
"""
|
243
375
|
if not component_id:
|
244
376
|
raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
|
245
|
-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
246
377
|
return await self._post(
|
247
378
|
f"/api/v1/upload/component/{component_id}/presigned-url",
|
379
|
+
body=await async_maybe_transform(
|
380
|
+
{
|
381
|
+
"content_type": content_type,
|
382
|
+
"filename": filename,
|
383
|
+
"folder_id": folder_id,
|
384
|
+
"organization_id": organization_id,
|
385
|
+
},
|
386
|
+
component_get_presigned_url_params.ComponentGetPresignedURLParams,
|
387
|
+
),
|
248
388
|
options=make_request_options(
|
249
389
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
250
390
|
),
|
251
|
-
cast_to=
|
391
|
+
cast_to=ComponentGetPresignedURLResponse,
|
252
392
|
)
|
253
393
|
|
254
394
|
async def upload_file(
|
255
395
|
self,
|
256
396
|
component_id: str,
|
257
397
|
*,
|
398
|
+
file: FileTypes,
|
399
|
+
folder_id: str,
|
400
|
+
organization_id: str,
|
258
401
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
259
402
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
260
403
|
extra_headers: Headers | None = None,
|
@@ -263,7 +406,15 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
263
406
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
264
407
|
) -> None:
|
265
408
|
"""
|
409
|
+
Upload a file to a component
|
410
|
+
|
266
411
|
Args:
|
412
|
+
file: The file to upload
|
413
|
+
|
414
|
+
folder_id: The ID of the folder to upload to
|
415
|
+
|
416
|
+
organization_id: The ID of the organization
|
417
|
+
|
267
418
|
extra_headers: Send extra headers
|
268
419
|
|
269
420
|
extra_query: Add additional query parameters to the request
|
@@ -275,8 +426,22 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
275
426
|
if not component_id:
|
276
427
|
raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
|
277
428
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
429
|
+
body = deepcopy_minimal(
|
430
|
+
{
|
431
|
+
"file": file,
|
432
|
+
"folder_id": folder_id,
|
433
|
+
"organization_id": organization_id,
|
434
|
+
}
|
435
|
+
)
|
436
|
+
files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
|
437
|
+
# It should be noted that the actual Content-Type header that will be
|
438
|
+
# sent to the server will contain a `boundary` parameter, e.g.
|
439
|
+
# multipart/form-data; boundary=---abc--
|
440
|
+
extra_headers["Content-Type"] = "multipart/form-data"
|
278
441
|
return await self._post(
|
279
442
|
f"/api/v1/upload/component/{component_id}/file",
|
443
|
+
body=await async_maybe_transform(body, component_upload_file_params.ComponentUploadFileParams),
|
444
|
+
files=files,
|
280
445
|
options=make_request_options(
|
281
446
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
282
447
|
),
|
@@ -287,6 +452,10 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
287
452
|
self,
|
288
453
|
component_id: str,
|
289
454
|
*,
|
455
|
+
folder_id: str,
|
456
|
+
name: str,
|
457
|
+
organization_id: str,
|
458
|
+
url: str,
|
290
459
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
291
460
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
292
461
|
extra_headers: Headers | None = None,
|
@@ -295,7 +464,17 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
295
464
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
296
465
|
) -> None:
|
297
466
|
"""
|
467
|
+
Upload a file from URL to a component
|
468
|
+
|
298
469
|
Args:
|
470
|
+
folder_id: The ID of the folder to upload to
|
471
|
+
|
472
|
+
name: The name for the uploaded file
|
473
|
+
|
474
|
+
organization_id: The ID of the organization
|
475
|
+
|
476
|
+
url: The URL of the file to upload
|
477
|
+
|
299
478
|
extra_headers: Send extra headers
|
300
479
|
|
301
480
|
extra_query: Add additional query parameters to the request
|
@@ -309,6 +488,15 @@ class AsyncComponentResource(AsyncAPIResource):
|
|
309
488
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
310
489
|
return await self._post(
|
311
490
|
f"/api/v1/upload/component/{component_id}/url",
|
491
|
+
body=await async_maybe_transform(
|
492
|
+
{
|
493
|
+
"folder_id": folder_id,
|
494
|
+
"name": name,
|
495
|
+
"organization_id": organization_id,
|
496
|
+
"url": url,
|
497
|
+
},
|
498
|
+
component_upload_url_params.ComponentUploadURLParams,
|
499
|
+
),
|
312
500
|
options=make_request_options(
|
313
501
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
314
502
|
),
|
@@ -18,6 +18,7 @@ from .flashcard_rate_params import FlashcardRateParams as FlashcardRateParams
|
|
18
18
|
from .embed_get_theme_params import EmbedGetThemeParams as EmbedGetThemeParams
|
19
19
|
from .material_create_params import MaterialCreateParams as MaterialCreateParams
|
20
20
|
from .material_list_response import MaterialListResponse as MaterialListResponse
|
21
|
+
from .material_search_params import MaterialSearchParams as MaterialSearchParams
|
21
22
|
from .scenario_create_params import ScenarioCreateParams as ScenarioCreateParams
|
22
23
|
from .scenario_update_params import ScenarioUpdateParams as ScenarioUpdateParams
|
23
24
|
from .usage_get_stats_params import UsageGetStatsParams as UsageGetStatsParams
|
@@ -31,9 +31,6 @@ class ComponentCreateParams(TypedDict, total=False):
|
|
31
31
|
name: Required[str]
|
32
32
|
"""Name of the component"""
|
33
33
|
|
34
|
-
origin: Required[Literal["chat", "classroom", "upload", "console", "api"]]
|
35
|
-
"""Origin of the component"""
|
36
|
-
|
37
34
|
type: Required[
|
38
35
|
Literal["chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"]
|
39
36
|
]
|
@@ -0,0 +1,27 @@
|
|
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__ = ["MaterialSearchParams"]
|
11
|
+
|
12
|
+
|
13
|
+
class MaterialSearchParams(TypedDict, total=False):
|
14
|
+
query: Required[str]
|
15
|
+
"""Search query"""
|
16
|
+
|
17
|
+
folder_ids: Annotated[List[str], PropertyInfo(alias="folderIds")]
|
18
|
+
"""
|
19
|
+
Optional: Limit search to materials within specific folders (includes
|
20
|
+
subfolders)
|
21
|
+
"""
|
22
|
+
|
23
|
+
material_ids: Annotated[List[str], PropertyInfo(alias="materialIds")]
|
24
|
+
"""Optional: Limit search to specific material IDs"""
|
25
|
+
|
26
|
+
top_k: Annotated[float, PropertyInfo(alias="topK")]
|
27
|
+
"""Number of results to return (default: 5)"""
|
@@ -1,3 +1,9 @@
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
|
+
|
5
|
+
from .component_upload_url_params import ComponentUploadURLParams as ComponentUploadURLParams
|
6
|
+
from .component_upload_file_params import ComponentUploadFileParams as ComponentUploadFileParams
|
7
|
+
from .component_complete_upload_params import ComponentCompleteUploadParams as ComponentCompleteUploadParams
|
8
|
+
from .component_get_presigned_url_params import ComponentGetPresignedURLParams as ComponentGetPresignedURLParams
|
9
|
+
from .component_get_presigned_url_response import ComponentGetPresignedURLResponse as ComponentGetPresignedURLResponse
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
|
5
|
+
from typing_extensions import Required, Annotated, TypedDict
|
6
|
+
|
7
|
+
from ...._utils import PropertyInfo
|
8
|
+
|
9
|
+
__all__ = ["ComponentCompleteUploadParams"]
|
10
|
+
|
11
|
+
|
12
|
+
class ComponentCompleteUploadParams(TypedDict, total=False):
|
13
|
+
material_id: Required[Annotated[str, PropertyInfo(alias="materialId")]]
|
14
|
+
"""The ID of the material that was uploaded"""
|
15
|
+
|
16
|
+
organization_id: Required[Annotated[str, PropertyInfo(alias="organizationId")]]
|
17
|
+
"""The ID of the organization"""
|
18
|
+
|
19
|
+
s3_key: Required[Annotated[str, PropertyInfo(alias="s3Key")]]
|
20
|
+
"""The S3 key of the uploaded file"""
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
|
5
|
+
from typing_extensions import Required, Annotated, TypedDict
|
6
|
+
|
7
|
+
from ...._utils import PropertyInfo
|
8
|
+
|
9
|
+
__all__ = ["ComponentGetPresignedURLParams"]
|
10
|
+
|
11
|
+
|
12
|
+
class ComponentGetPresignedURLParams(TypedDict, total=False):
|
13
|
+
content_type: Required[Annotated[str, PropertyInfo(alias="contentType")]]
|
14
|
+
"""The MIME type of the file"""
|
15
|
+
|
16
|
+
filename: Required[str]
|
17
|
+
"""The name of the file to upload"""
|
18
|
+
|
19
|
+
folder_id: Required[Annotated[str, PropertyInfo(alias="folderId")]]
|
20
|
+
"""The ID of the folder to upload to"""
|
21
|
+
|
22
|
+
organization_id: Required[Annotated[str, PropertyInfo(alias="organizationId")]]
|
23
|
+
"""The ID of the organization"""
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
2
|
+
|
3
|
+
from pydantic import Field as FieldInfo
|
4
|
+
|
5
|
+
from ...._models import BaseModel
|
6
|
+
|
7
|
+
__all__ = ["ComponentGetPresignedURLResponse"]
|
8
|
+
|
9
|
+
|
10
|
+
class ComponentGetPresignedURLResponse(BaseModel):
|
11
|
+
key: str
|
12
|
+
"""The S3 key for the file"""
|
13
|
+
|
14
|
+
upload_url: str = FieldInfo(alias="uploadUrl")
|
15
|
+
"""The presigned URL for uploading"""
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
|
5
|
+
from typing_extensions import Required, Annotated, TypedDict
|
6
|
+
|
7
|
+
from ...._types import FileTypes
|
8
|
+
from ...._utils import PropertyInfo
|
9
|
+
|
10
|
+
__all__ = ["ComponentUploadFileParams"]
|
11
|
+
|
12
|
+
|
13
|
+
class ComponentUploadFileParams(TypedDict, total=False):
|
14
|
+
file: Required[FileTypes]
|
15
|
+
"""The file to upload"""
|
16
|
+
|
17
|
+
folder_id: Required[Annotated[str, PropertyInfo(alias="folderId")]]
|
18
|
+
"""The ID of the folder to upload to"""
|
19
|
+
|
20
|
+
organization_id: Required[Annotated[str, PropertyInfo(alias="organizationId")]]
|
21
|
+
"""The ID of the organization"""
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
|
5
|
+
from typing_extensions import Required, Annotated, TypedDict
|
6
|
+
|
7
|
+
from ...._utils import PropertyInfo
|
8
|
+
|
9
|
+
__all__ = ["ComponentUploadURLParams"]
|
10
|
+
|
11
|
+
|
12
|
+
class ComponentUploadURLParams(TypedDict, total=False):
|
13
|
+
folder_id: Required[Annotated[str, PropertyInfo(alias="folderId")]]
|
14
|
+
"""The ID of the folder to upload to"""
|
15
|
+
|
16
|
+
name: Required[str]
|
17
|
+
"""The name for the uploaded file"""
|
18
|
+
|
19
|
+
organization_id: Required[Annotated[str, PropertyInfo(alias="organizationId")]]
|
20
|
+
"""The ID of the organization"""
|
21
|
+
|
22
|
+
url: Required[str]
|
23
|
+
"""The URL of the file to upload"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: studyfetch_sdk
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.0a15
|
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=MGAn60ax2_6gf7WaYfAYE4foJ6HZVOtybHOQr9mRxvQ,175
|
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=qxWo4pd2dhmbovxcvRakku86rsvbGMXDISPSEs8qc_s,6729
|
29
29
|
studyfetch_sdk/resources/v1/assignment_grader.py,sha256=6jUl0kFBR90J5rkqa6bLf07EaiFDcXN1DvbUxFjUSs8,13243
|
30
|
-
studyfetch_sdk/resources/v1/components.py,sha256=
|
30
|
+
studyfetch_sdk/resources/v1/components.py,sha256=bPVp1Z1uZPco7ZHN7ulduuV4lhXfIHnnvj_lzGDr9vI,35125
|
31
31
|
studyfetch_sdk/resources/v1/explainers.py,sha256=W5Kq3Gpwqw3kBy9v-qpV5FKxH1HAm5_yk1NgACM-Mec,16047
|
32
32
|
studyfetch_sdk/resources/v1/flashcards.py,sha256=_-zZUd8Ja9k2895cxLJsLbN73ZTIrkJaComGCSMkbCk,29242
|
33
33
|
studyfetch_sdk/resources/v1/folders.py,sha256=o43HhcVhqF3t7xWMFFNIiMPElhoqkXtaCTVjEE5s5so,27436
|
@@ -44,7 +44,7 @@ studyfetch_sdk/resources/v1/embed/component.py,sha256=vFArqNnLaCGiHAKt4dhF3IBE95
|
|
44
44
|
studyfetch_sdk/resources/v1/embed/embed.py,sha256=Tbny2GdlacLtNE-TfYRqYsVNIcOmPOy16cI1IrAHLmM,12582
|
45
45
|
studyfetch_sdk/resources/v1/materials/__init__.py,sha256=tVk8p-CapS6r8iWZXSBxwA0UlQyHJQMY9FPDL_TvMfY,1889
|
46
46
|
studyfetch_sdk/resources/v1/materials/bulk.py,sha256=oVAcnbKm8NUBFJIMoj4pEHFb_l1CM7F3Ve9cTApWguo,4843
|
47
|
-
studyfetch_sdk/resources/v1/materials/materials.py,sha256=
|
47
|
+
studyfetch_sdk/resources/v1/materials/materials.py,sha256=P_KTA5L54eVljY_HtLZD4zIEScrQ6kAi9WcCFI_04-0,40800
|
48
48
|
studyfetch_sdk/resources/v1/materials/test.py,sha256=eGcjGYvPlrlZGrU6AnvZZX5qZ3aLgZgxIrNspXC1rnE,11355
|
49
49
|
studyfetch_sdk/resources/v1/materials/upload.py,sha256=vXbsicx0pVlrx3LPr7rqOkqHmzBoxFI6lIBScM29zr8,15476
|
50
50
|
studyfetch_sdk/resources/v1/scenarios/__init__.py,sha256=WrMn3vQJgHGQzWKq5SRUTMMvRd4p15Bt5JjZpHhKHZs,2071
|
@@ -58,13 +58,13 @@ studyfetch_sdk/resources/v1/tests/__init__.py,sha256=7-K6i3WJPRCoMSOatJEqUhlz74S
|
|
58
58
|
studyfetch_sdk/resources/v1/tests/component.py,sha256=MJZIo4-ES4tkY9P1FJl8phjkQxGG8FBCe99ar0I_un4,6013
|
59
59
|
studyfetch_sdk/resources/v1/tests/tests.py,sha256=BGwXClZ8YkzegN80R0WDIrvK3WN1-ujtYkfR33ARhVU,24870
|
60
60
|
studyfetch_sdk/resources/v1/upload/__init__.py,sha256=N5r6jpSMe43dezq-6RBAWLVlL3-Z76lU7DG53phDGr8,1041
|
61
|
-
studyfetch_sdk/resources/v1/upload/component.py,sha256=
|
61
|
+
studyfetch_sdk/resources/v1/upload/component.py,sha256=I7RZ9K1_Meg__pbeBGGvTSg_ugzxcdFiCzibSQNyg78,21794
|
62
62
|
studyfetch_sdk/resources/v1/upload/upload.py,sha256=RBkrsVi5_8qIqdYKypnSqj44ONvwW7u2XXIlpuJsKSg,3736
|
63
63
|
studyfetch_sdk/resources/v1/usage/__init__.py,sha256=zUBe7msw9tyZplhmwNkhbCfRigNQQVj4IFpod4uGWZY,1002
|
64
64
|
studyfetch_sdk/resources/v1/usage/analyst.py,sha256=BZC5QVnm6UWacrqodYFGXUodBM_b37I9jClbiXTakJo,13206
|
65
65
|
studyfetch_sdk/resources/v1/usage/usage.py,sha256=HAG7FfTIiIihB0dtbZEmluKDD0GWqKWrfLp03gcdPjU,19694
|
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=G2hSEu2NGKqUlFDRv3h2M-6AhdYOZqvNpMmNGGphgyg,3856
|
68
68
|
studyfetch_sdk/types/v1/assignment_grader_create_params.py,sha256=o-U_-0ZHJxwpL3pSEW41SmsHz-sOP490i5P8EA5A-Ws,1246
|
69
69
|
studyfetch_sdk/types/v1/assignment_grader_get_all_response.py,sha256=FidqfpFC-PX05_knGWicLerCeSqJiScW2IbzPyzBb2c,339
|
70
70
|
studyfetch_sdk/types/v1/assignment_grader_response.py,sha256=j2DKiD99EPKPcvY6k7wKXd3r9UTkEe9SMmY94rRxjgw,548
|
@@ -72,7 +72,7 @@ studyfetch_sdk/types/v1/chat_get_session_params.py,sha256=Iv3O6eF4DvTYTBVQVyVR4t
|
|
72
72
|
studyfetch_sdk/types/v1/chat_send_message_params.py,sha256=BRxjNsVXsqcBbdrp4J5TQGjjNPJ_bz7uXw3pnc-x0oU,1454
|
73
73
|
studyfetch_sdk/types/v1/chat_stream_params.py,sha256=Aqp2Vdsa35PAH-75kaO_ZYlkqGrCgDZ5EyYTTLRAJoE,695
|
74
74
|
studyfetch_sdk/types/v1/component.py,sha256=ye8BDfb0taD0WwEWJDpi4cXH0iwKqzom0SQQA1nbO4c,1166
|
75
|
-
studyfetch_sdk/types/v1/component_create_params.py,sha256=
|
75
|
+
studyfetch_sdk/types/v1/component_create_params.py,sha256=i8kgVzsTGGYsYkd-sm9Aw7-kO_aQ64QCzmbnssGD5YQ,10382
|
76
76
|
studyfetch_sdk/types/v1/component_generate_embed_params.py,sha256=keiOzDzPCvacAWHQj_OtF2pGjEAqxwjNriBGxRaRQNk,3068
|
77
77
|
studyfetch_sdk/types/v1/component_generate_embed_response.py,sha256=xhbqEpAt_Q7yzD4xjWITs_jXYUD6ElrH4aQfNEunI3Y,922
|
78
78
|
studyfetch_sdk/types/v1/component_list_params.py,sha256=R8NMK7r37CpqmbAWdbs6rEF1LigoYrE3BXksJCCdKEQ,431
|
@@ -98,6 +98,7 @@ studyfetch_sdk/types/v1/material_create_params.py,sha256=mYjnlTBvz_aInnnqO7FiNEH
|
|
98
98
|
studyfetch_sdk/types/v1/material_get_download_url_params.py,sha256=7prrB3K-E4xAWUQlaH_YBCEB7u9WHQSc9pE1NvO88Ts,400
|
99
99
|
studyfetch_sdk/types/v1/material_list_params.py,sha256=8yd556-GB4Xw-NFGshxm_Hx-nIG-MAg4dPtn-W38w3k,388
|
100
100
|
studyfetch_sdk/types/v1/material_list_response.py,sha256=mYCoEQJT6sxJd35nchrBf7BJpRHWWH1CbgZNz3QBPQg,269
|
101
|
+
studyfetch_sdk/types/v1/material_search_params.py,sha256=vawi3xfUqEn0jfj7X50dEEqpEjbhFYkwaWnXpKk7Lxs,800
|
101
102
|
studyfetch_sdk/types/v1/scenario_create_params.py,sha256=anCK913P4vYEtgY6GnxxxCxRnUazeV1H1NoyBV78sT8,1281
|
102
103
|
studyfetch_sdk/types/v1/scenario_submit_answer_params.py,sha256=g1idbU9OxRC_qrU7bOVNuFcXtKa2ZiJgy7KBR2mJWSM,597
|
103
104
|
studyfetch_sdk/types/v1/scenario_update_params.py,sha256=F83xky9wzolK2VmTkTUqfrNwXB-h-H__8YYy7oXLz8A,1168
|
@@ -121,10 +122,15 @@ studyfetch_sdk/types/v1/scenarios/__init__.py,sha256=2DyrawNlb-TstNKw0gUMlQaNSq-
|
|
121
122
|
studyfetch_sdk/types/v1/scenarios/component_update_params.py,sha256=0wsa-_gN17TKmvhQBbCIQmN2gSEuCq2HBWjQaTqhFdk,1171
|
122
123
|
studyfetch_sdk/types/v1/scenarios/submissions/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
|
123
124
|
studyfetch_sdk/types/v1/tests/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
|
124
|
-
studyfetch_sdk/types/v1/upload/__init__.py,sha256=
|
125
|
+
studyfetch_sdk/types/v1/upload/__init__.py,sha256=CcAj2VNEnMv61GoKuDm7dAeLRwRbjez5QfjpxD8D5o4,655
|
126
|
+
studyfetch_sdk/types/v1/upload/component_complete_upload_params.py,sha256=B3-7nCdLI4S_q0qa8NBS7gNwL0F8ljYVvEbo9fwCkXQ,687
|
127
|
+
studyfetch_sdk/types/v1/upload/component_get_presigned_url_params.py,sha256=dTGFn9zyOY9z3NNdPw732L3Ln7D1GKA3S8xB3FBPb7c,754
|
128
|
+
studyfetch_sdk/types/v1/upload/component_get_presigned_url_response.py,sha256=RDHDy3IO_qjtnfLHJQ2CX2_uG6_BJI-vwgQk2UJ-aE8,404
|
129
|
+
studyfetch_sdk/types/v1/upload/component_upload_file_params.py,sha256=UTv4EMrj7_hXa-PU68PMEyXn-bnhxcC0V0qO0JN5W-I,652
|
130
|
+
studyfetch_sdk/types/v1/upload/component_upload_url_params.py,sha256=3wXvto5WWzLYCu0EfQAWQgM73OmbRGhTwe6UnkMW0gM,687
|
125
131
|
studyfetch_sdk/types/v1/usage/__init__.py,sha256=W93APDYogn9YlFksS696VpAlz_P7W8mt5wfduXWtoVY,214
|
126
132
|
studyfetch_sdk/types/v1/usage/analyst_list_events_params.py,sha256=5ylEgFOsxQ0HNLfyTktNvZx-VuWJHV06HMIfiNnVNHo,1562
|
127
|
-
studyfetch_sdk-0.1.
|
128
|
-
studyfetch_sdk-0.1.
|
129
|
-
studyfetch_sdk-0.1.
|
130
|
-
studyfetch_sdk-0.1.
|
133
|
+
studyfetch_sdk-0.1.0a15.dist-info/METADATA,sha256=0iLN0P6fg7BDv52o4q36_foH2HooOyvIBPeIAGyzlo0,15518
|
134
|
+
studyfetch_sdk-0.1.0a15.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
135
|
+
studyfetch_sdk-0.1.0a15.dist-info/licenses/LICENSE,sha256=CsdbJMegH_AAWljUmVcwW0Cj_GyIm1hjw6qPqPnmdn4,11344
|
136
|
+
studyfetch_sdk-0.1.0a15.dist-info/RECORD,,
|
File without changes
|
File without changes
|