studyfetch-sdk 0.1.0a1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. studyfetch_sdk/__init__.py +100 -0
  2. studyfetch_sdk/_base_client.py +1992 -0
  3. studyfetch_sdk/_client.py +403 -0
  4. studyfetch_sdk/_compat.py +219 -0
  5. studyfetch_sdk/_constants.py +14 -0
  6. studyfetch_sdk/_exceptions.py +108 -0
  7. studyfetch_sdk/_files.py +123 -0
  8. studyfetch_sdk/_models.py +808 -0
  9. studyfetch_sdk/_qs.py +150 -0
  10. studyfetch_sdk/_resource.py +43 -0
  11. studyfetch_sdk/_response.py +832 -0
  12. studyfetch_sdk/_streaming.py +333 -0
  13. studyfetch_sdk/_types.py +219 -0
  14. studyfetch_sdk/_utils/__init__.py +57 -0
  15. studyfetch_sdk/_utils/_logs.py +25 -0
  16. studyfetch_sdk/_utils/_proxy.py +65 -0
  17. studyfetch_sdk/_utils/_reflection.py +42 -0
  18. studyfetch_sdk/_utils/_resources_proxy.py +24 -0
  19. studyfetch_sdk/_utils/_streams.py +12 -0
  20. studyfetch_sdk/_utils/_sync.py +86 -0
  21. studyfetch_sdk/_utils/_transform.py +447 -0
  22. studyfetch_sdk/_utils/_typing.py +151 -0
  23. studyfetch_sdk/_utils/_utils.py +422 -0
  24. studyfetch_sdk/_version.py +4 -0
  25. studyfetch_sdk/lib/.keep +4 -0
  26. studyfetch_sdk/py.typed +0 -0
  27. studyfetch_sdk/resources/__init__.py +19 -0
  28. studyfetch_sdk/resources/v1/__init__.py +215 -0
  29. studyfetch_sdk/resources/v1/audio_recaps/__init__.py +33 -0
  30. studyfetch_sdk/resources/v1/audio_recaps/audio_recaps.py +328 -0
  31. studyfetch_sdk/resources/v1/audio_recaps/sections.py +250 -0
  32. studyfetch_sdk/resources/v1/auth/__init__.py +61 -0
  33. studyfetch_sdk/resources/v1/auth/auth.py +620 -0
  34. studyfetch_sdk/resources/v1/auth/login.py +374 -0
  35. studyfetch_sdk/resources/v1/auth/number_2fa.py +457 -0
  36. studyfetch_sdk/resources/v1/auth/organization_invites.py +160 -0
  37. studyfetch_sdk/resources/v1/chat/__init__.py +47 -0
  38. studyfetch_sdk/resources/v1/chat/chat.py +576 -0
  39. studyfetch_sdk/resources/v1/chat/sessions.py +222 -0
  40. studyfetch_sdk/resources/v1/chat/test.py +190 -0
  41. studyfetch_sdk/resources/v1/components.py +943 -0
  42. studyfetch_sdk/resources/v1/embed/__init__.py +33 -0
  43. studyfetch_sdk/resources/v1/embed/component.py +278 -0
  44. studyfetch_sdk/resources/v1/embed/embed.py +346 -0
  45. studyfetch_sdk/resources/v1/explainers.py +216 -0
  46. studyfetch_sdk/resources/v1/flashcards.py +783 -0
  47. studyfetch_sdk/resources/v1/folders.py +744 -0
  48. studyfetch_sdk/resources/v1/materials/__init__.py +61 -0
  49. studyfetch_sdk/resources/v1/materials/bulk.py +134 -0
  50. studyfetch_sdk/resources/v1/materials/materials.py +1029 -0
  51. studyfetch_sdk/resources/v1/materials/test.py +290 -0
  52. studyfetch_sdk/resources/v1/materials/upload.py +410 -0
  53. studyfetch_sdk/resources/v1/organizations/__init__.py +103 -0
  54. studyfetch_sdk/resources/v1/organizations/api_keys.py +260 -0
  55. studyfetch_sdk/resources/v1/organizations/logo/__init__.py +33 -0
  56. studyfetch_sdk/resources/v1/organizations/logo/logo.py +166 -0
  57. studyfetch_sdk/resources/v1/organizations/logo/upload.py +184 -0
  58. studyfetch_sdk/resources/v1/organizations/organizations.py +428 -0
  59. studyfetch_sdk/resources/v1/organizations/profile/__init__.py +47 -0
  60. studyfetch_sdk/resources/v1/organizations/profile/models.py +134 -0
  61. studyfetch_sdk/resources/v1/organizations/profile/profile.py +248 -0
  62. studyfetch_sdk/resources/v1/organizations/profile/team.py +462 -0
  63. studyfetch_sdk/resources/v1/organizations/team/__init__.py +33 -0
  64. studyfetch_sdk/resources/v1/organizations/team/invite.py +236 -0
  65. studyfetch_sdk/resources/v1/organizations/team/team.py +564 -0
  66. studyfetch_sdk/resources/v1/organizations/theme.py +184 -0
  67. studyfetch_sdk/resources/v1/organizations/usage.py +160 -0
  68. studyfetch_sdk/resources/v1/scenarios/__init__.py +61 -0
  69. studyfetch_sdk/resources/v1/scenarios/component.py +330 -0
  70. studyfetch_sdk/resources/v1/scenarios/scenarios.py +708 -0
  71. studyfetch_sdk/resources/v1/scenarios/sessions.py +236 -0
  72. studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py +33 -0
  73. studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py +102 -0
  74. studyfetch_sdk/resources/v1/scenarios/submissions/user.py +210 -0
  75. studyfetch_sdk/resources/v1/tests/__init__.py +33 -0
  76. studyfetch_sdk/resources/v1/tests/component.py +160 -0
  77. studyfetch_sdk/resources/v1/tests/tests.py +682 -0
  78. studyfetch_sdk/resources/v1/upload/__init__.py +33 -0
  79. studyfetch_sdk/resources/v1/upload/component.py +388 -0
  80. studyfetch_sdk/resources/v1/upload/upload.py +102 -0
  81. studyfetch_sdk/resources/v1/usage.py +1126 -0
  82. studyfetch_sdk/resources/v1/v1.py +518 -0
  83. studyfetch_sdk/types/__init__.py +3 -0
  84. studyfetch_sdk/types/v1/__init__.py +52 -0
  85. studyfetch_sdk/types/v1/admin/__init__.py +3 -0
  86. studyfetch_sdk/types/v1/admin/organizations/__init__.py +3 -0
  87. studyfetch_sdk/types/v1/admin/organizations/models/__init__.py +3 -0
  88. studyfetch_sdk/types/v1/audio_recaps/__init__.py +3 -0
  89. studyfetch_sdk/types/v1/auth/__init__.py +13 -0
  90. studyfetch_sdk/types/v1/auth/login_authenticate_params.py +15 -0
  91. studyfetch_sdk/types/v1/auth/login_verify_2fa_params.py +15 -0
  92. studyfetch_sdk/types/v1/auth/login_verify_backup_code_params.py +17 -0
  93. studyfetch_sdk/types/v1/auth/number_2fa_disable_params.py +12 -0
  94. studyfetch_sdk/types/v1/auth/number_2fa_enable_params.py +12 -0
  95. studyfetch_sdk/types/v1/auth/number_2fa_regenerate_backup_codes_params.py +12 -0
  96. studyfetch_sdk/types/v1/auth/number_2fa_send_code_params.py +12 -0
  97. studyfetch_sdk/types/v1/auth_register_new_user_params.py +23 -0
  98. studyfetch_sdk/types/v1/auth_request_password_reset_params.py +12 -0
  99. studyfetch_sdk/types/v1/auth_reset_password_params.py +17 -0
  100. studyfetch_sdk/types/v1/chat/__init__.py +5 -0
  101. studyfetch_sdk/types/v1/chat/session_retrieve_params.py +11 -0
  102. studyfetch_sdk/types/v1/chat_retrieve_session_params.py +13 -0
  103. studyfetch_sdk/types/v1/chat_send_message_params.py +54 -0
  104. studyfetch_sdk/types/v1/chat_stream_params.py +28 -0
  105. studyfetch_sdk/types/v1/component_create_params.py +29 -0
  106. studyfetch_sdk/types/v1/component_create_response.py +46 -0
  107. studyfetch_sdk/types/v1/component_embed_params.py +99 -0
  108. studyfetch_sdk/types/v1/component_embed_response.py +38 -0
  109. studyfetch_sdk/types/v1/component_list_params.py +14 -0
  110. studyfetch_sdk/types/v1/component_list_response.py +49 -0
  111. studyfetch_sdk/types/v1/component_retrieve_response.py +46 -0
  112. studyfetch_sdk/types/v1/component_update_params.py +12 -0
  113. studyfetch_sdk/types/v1/component_update_response.py +46 -0
  114. studyfetch_sdk/types/v1/embed/__init__.py +6 -0
  115. studyfetch_sdk/types/v1/embed/component_interact_params.py +14 -0
  116. studyfetch_sdk/types/v1/embed/component_retrieve_params.py +12 -0
  117. studyfetch_sdk/types/v1/embed_get_theme_params.py +12 -0
  118. studyfetch_sdk/types/v1/embed_verify_params.py +12 -0
  119. studyfetch_sdk/types/v1/explainer_handle_webhook_params.py +11 -0
  120. studyfetch_sdk/types/v1/flashcard_batch_process_params.py +36 -0
  121. studyfetch_sdk/types/v1/flashcard_batch_process_response.py +39 -0
  122. studyfetch_sdk/types/v1/flashcard_get_algorithm_info_response.py +37 -0
  123. studyfetch_sdk/types/v1/flashcard_get_all_params.py +23 -0
  124. studyfetch_sdk/types/v1/flashcard_get_due_params.py +19 -0
  125. studyfetch_sdk/types/v1/flashcard_get_stats_params.py +17 -0
  126. studyfetch_sdk/types/v1/flashcard_get_types_response.py +14 -0
  127. studyfetch_sdk/types/v1/flashcard_rate_params.py +23 -0
  128. studyfetch_sdk/types/v1/folder_create_params.py +17 -0
  129. studyfetch_sdk/types/v1/folder_list_params.py +14 -0
  130. studyfetch_sdk/types/v1/folder_update_params.py +17 -0
  131. studyfetch_sdk/types/v1/material_create_params.py +34 -0
  132. studyfetch_sdk/types/v1/material_create_response.py +62 -0
  133. studyfetch_sdk/types/v1/material_get_download_url_params.py +13 -0
  134. studyfetch_sdk/types/v1/material_list_params.py +14 -0
  135. studyfetch_sdk/types/v1/material_list_response.py +65 -0
  136. studyfetch_sdk/types/v1/material_retrieve_response.py +62 -0
  137. studyfetch_sdk/types/v1/materials/__init__.py +8 -0
  138. studyfetch_sdk/types/v1/materials/upload_upload_file_params.py +20 -0
  139. studyfetch_sdk/types/v1/materials/upload_upload_file_response.py +62 -0
  140. studyfetch_sdk/types/v1/materials/upload_upload_from_url_params.py +20 -0
  141. studyfetch_sdk/types/v1/materials/upload_upload_from_url_response.py +62 -0
  142. studyfetch_sdk/types/v1/organizations/__init__.py +3 -0
  143. studyfetch_sdk/types/v1/organizations/logo/__init__.py +3 -0
  144. studyfetch_sdk/types/v1/organizations/profile/__init__.py +3 -0
  145. studyfetch_sdk/types/v1/organizations/team/__init__.py +3 -0
  146. studyfetch_sdk/types/v1/scenario_create_params.py +11 -0
  147. studyfetch_sdk/types/v1/scenario_update_params.py +11 -0
  148. studyfetch_sdk/types/v1/scenarios/__init__.py +5 -0
  149. studyfetch_sdk/types/v1/scenarios/component_update_params.py +11 -0
  150. studyfetch_sdk/types/v1/scenarios/submissions/__init__.py +3 -0
  151. studyfetch_sdk/types/v1/test_create_params.py +20 -0
  152. studyfetch_sdk/types/v1/test_retake_params.py +14 -0
  153. studyfetch_sdk/types/v1/test_submit_answer_params.py +20 -0
  154. studyfetch_sdk/types/v1/test_submit_params.py +14 -0
  155. studyfetch_sdk/types/v1/tests/__init__.py +3 -0
  156. studyfetch_sdk/types/v1/upload/__init__.py +3 -0
  157. studyfetch_sdk/types/v1/usage_get_stats_params.py +23 -0
  158. studyfetch_sdk/types/v1/usage_get_summary_params.py +23 -0
  159. studyfetch_sdk/types/v1/usage_list_events_params.py +61 -0
  160. studyfetch_sdk/types/v1/usage_track_chat_params.py +54 -0
  161. studyfetch_sdk/types/v1/usage_track_event_params.py +128 -0
  162. studyfetch_sdk-0.1.0a1.dist-info/METADATA +453 -0
  163. studyfetch_sdk-0.1.0a1.dist-info/RECORD +165 -0
  164. studyfetch_sdk-0.1.0a1.dist-info/WHEEL +4 -0
  165. studyfetch_sdk-0.1.0a1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,518 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .usage import (
6
+ UsageResource,
7
+ AsyncUsageResource,
8
+ UsageResourceWithRawResponse,
9
+ AsyncUsageResourceWithRawResponse,
10
+ UsageResourceWithStreamingResponse,
11
+ AsyncUsageResourceWithStreamingResponse,
12
+ )
13
+ from .folders import (
14
+ FoldersResource,
15
+ AsyncFoldersResource,
16
+ FoldersResourceWithRawResponse,
17
+ AsyncFoldersResourceWithRawResponse,
18
+ FoldersResourceWithStreamingResponse,
19
+ AsyncFoldersResourceWithStreamingResponse,
20
+ )
21
+ from ..._compat import cached_property
22
+ from .auth.auth import (
23
+ AuthResource,
24
+ AsyncAuthResource,
25
+ AuthResourceWithRawResponse,
26
+ AsyncAuthResourceWithRawResponse,
27
+ AuthResourceWithStreamingResponse,
28
+ AsyncAuthResourceWithStreamingResponse,
29
+ )
30
+ from .chat.chat import (
31
+ ChatResource,
32
+ AsyncChatResource,
33
+ ChatResourceWithRawResponse,
34
+ AsyncChatResourceWithRawResponse,
35
+ ChatResourceWithStreamingResponse,
36
+ AsyncChatResourceWithStreamingResponse,
37
+ )
38
+ from .components import (
39
+ ComponentsResource,
40
+ AsyncComponentsResource,
41
+ ComponentsResourceWithRawResponse,
42
+ AsyncComponentsResourceWithRawResponse,
43
+ ComponentsResourceWithStreamingResponse,
44
+ AsyncComponentsResourceWithStreamingResponse,
45
+ )
46
+ from .explainers import (
47
+ ExplainersResource,
48
+ AsyncExplainersResource,
49
+ ExplainersResourceWithRawResponse,
50
+ AsyncExplainersResourceWithRawResponse,
51
+ ExplainersResourceWithStreamingResponse,
52
+ AsyncExplainersResourceWithStreamingResponse,
53
+ )
54
+ from .flashcards import (
55
+ FlashcardsResource,
56
+ AsyncFlashcardsResource,
57
+ FlashcardsResourceWithRawResponse,
58
+ AsyncFlashcardsResourceWithRawResponse,
59
+ FlashcardsResourceWithStreamingResponse,
60
+ AsyncFlashcardsResourceWithStreamingResponse,
61
+ )
62
+ from ..._resource import SyncAPIResource, AsyncAPIResource
63
+ from .embed.embed import (
64
+ EmbedResource,
65
+ AsyncEmbedResource,
66
+ EmbedResourceWithRawResponse,
67
+ AsyncEmbedResourceWithRawResponse,
68
+ EmbedResourceWithStreamingResponse,
69
+ AsyncEmbedResourceWithStreamingResponse,
70
+ )
71
+ from .tests.tests import (
72
+ TestsResource,
73
+ AsyncTestsResource,
74
+ TestsResourceWithRawResponse,
75
+ AsyncTestsResourceWithRawResponse,
76
+ TestsResourceWithStreamingResponse,
77
+ AsyncTestsResourceWithStreamingResponse,
78
+ )
79
+ from .upload.upload import (
80
+ UploadResource,
81
+ AsyncUploadResource,
82
+ UploadResourceWithRawResponse,
83
+ AsyncUploadResourceWithRawResponse,
84
+ UploadResourceWithStreamingResponse,
85
+ AsyncUploadResourceWithStreamingResponse,
86
+ )
87
+ from .materials.materials import (
88
+ MaterialsResource,
89
+ AsyncMaterialsResource,
90
+ MaterialsResourceWithRawResponse,
91
+ AsyncMaterialsResourceWithRawResponse,
92
+ MaterialsResourceWithStreamingResponse,
93
+ AsyncMaterialsResourceWithStreamingResponse,
94
+ )
95
+ from .scenarios.scenarios import (
96
+ ScenariosResource,
97
+ AsyncScenariosResource,
98
+ ScenariosResourceWithRawResponse,
99
+ AsyncScenariosResourceWithRawResponse,
100
+ ScenariosResourceWithStreamingResponse,
101
+ AsyncScenariosResourceWithStreamingResponse,
102
+ )
103
+ from .audio_recaps.audio_recaps import (
104
+ AudioRecapsResource,
105
+ AsyncAudioRecapsResource,
106
+ AudioRecapsResourceWithRawResponse,
107
+ AsyncAudioRecapsResourceWithRawResponse,
108
+ AudioRecapsResourceWithStreamingResponse,
109
+ AsyncAudioRecapsResourceWithStreamingResponse,
110
+ )
111
+ from .organizations.organizations import (
112
+ OrganizationsResource,
113
+ AsyncOrganizationsResource,
114
+ OrganizationsResourceWithRawResponse,
115
+ AsyncOrganizationsResourceWithRawResponse,
116
+ OrganizationsResourceWithStreamingResponse,
117
+ AsyncOrganizationsResourceWithStreamingResponse,
118
+ )
119
+
120
+ __all__ = ["V1Resource", "AsyncV1Resource"]
121
+
122
+
123
+ class V1Resource(SyncAPIResource):
124
+ @cached_property
125
+ def auth(self) -> AuthResource:
126
+ return AuthResource(self._client)
127
+
128
+ @cached_property
129
+ def organizations(self) -> OrganizationsResource:
130
+ return OrganizationsResource(self._client)
131
+
132
+ @cached_property
133
+ def materials(self) -> MaterialsResource:
134
+ return MaterialsResource(self._client)
135
+
136
+ @cached_property
137
+ def usage(self) -> UsageResource:
138
+ return UsageResource(self._client)
139
+
140
+ @cached_property
141
+ def folders(self) -> FoldersResource:
142
+ return FoldersResource(self._client)
143
+
144
+ @cached_property
145
+ def components(self) -> ComponentsResource:
146
+ return ComponentsResource(self._client)
147
+
148
+ @cached_property
149
+ def embed(self) -> EmbedResource:
150
+ return EmbedResource(self._client)
151
+
152
+ @cached_property
153
+ def chat(self) -> ChatResource:
154
+ return ChatResource(self._client)
155
+
156
+ @cached_property
157
+ def flashcards(self) -> FlashcardsResource:
158
+ return FlashcardsResource(self._client)
159
+
160
+ @cached_property
161
+ def tests(self) -> TestsResource:
162
+ return TestsResource(self._client)
163
+
164
+ @cached_property
165
+ def audio_recaps(self) -> AudioRecapsResource:
166
+ return AudioRecapsResource(self._client)
167
+
168
+ @cached_property
169
+ def scenarios(self) -> ScenariosResource:
170
+ return ScenariosResource(self._client)
171
+
172
+ @cached_property
173
+ def explainers(self) -> ExplainersResource:
174
+ return ExplainersResource(self._client)
175
+
176
+ @cached_property
177
+ def upload(self) -> UploadResource:
178
+ return UploadResource(self._client)
179
+
180
+ @cached_property
181
+ def with_raw_response(self) -> V1ResourceWithRawResponse:
182
+ """
183
+ This property can be used as a prefix for any HTTP method call to return
184
+ the raw response object instead of the parsed content.
185
+
186
+ For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#accessing-raw-response-data-eg-headers
187
+ """
188
+ return V1ResourceWithRawResponse(self)
189
+
190
+ @cached_property
191
+ def with_streaming_response(self) -> V1ResourceWithStreamingResponse:
192
+ """
193
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
194
+
195
+ For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#with_streaming_response
196
+ """
197
+ return V1ResourceWithStreamingResponse(self)
198
+
199
+
200
+ class AsyncV1Resource(AsyncAPIResource):
201
+ @cached_property
202
+ def auth(self) -> AsyncAuthResource:
203
+ return AsyncAuthResource(self._client)
204
+
205
+ @cached_property
206
+ def organizations(self) -> AsyncOrganizationsResource:
207
+ return AsyncOrganizationsResource(self._client)
208
+
209
+ @cached_property
210
+ def materials(self) -> AsyncMaterialsResource:
211
+ return AsyncMaterialsResource(self._client)
212
+
213
+ @cached_property
214
+ def usage(self) -> AsyncUsageResource:
215
+ return AsyncUsageResource(self._client)
216
+
217
+ @cached_property
218
+ def folders(self) -> AsyncFoldersResource:
219
+ return AsyncFoldersResource(self._client)
220
+
221
+ @cached_property
222
+ def components(self) -> AsyncComponentsResource:
223
+ return AsyncComponentsResource(self._client)
224
+
225
+ @cached_property
226
+ def embed(self) -> AsyncEmbedResource:
227
+ return AsyncEmbedResource(self._client)
228
+
229
+ @cached_property
230
+ def chat(self) -> AsyncChatResource:
231
+ return AsyncChatResource(self._client)
232
+
233
+ @cached_property
234
+ def flashcards(self) -> AsyncFlashcardsResource:
235
+ return AsyncFlashcardsResource(self._client)
236
+
237
+ @cached_property
238
+ def tests(self) -> AsyncTestsResource:
239
+ return AsyncTestsResource(self._client)
240
+
241
+ @cached_property
242
+ def audio_recaps(self) -> AsyncAudioRecapsResource:
243
+ return AsyncAudioRecapsResource(self._client)
244
+
245
+ @cached_property
246
+ def scenarios(self) -> AsyncScenariosResource:
247
+ return AsyncScenariosResource(self._client)
248
+
249
+ @cached_property
250
+ def explainers(self) -> AsyncExplainersResource:
251
+ return AsyncExplainersResource(self._client)
252
+
253
+ @cached_property
254
+ def upload(self) -> AsyncUploadResource:
255
+ return AsyncUploadResource(self._client)
256
+
257
+ @cached_property
258
+ def with_raw_response(self) -> AsyncV1ResourceWithRawResponse:
259
+ """
260
+ This property can be used as a prefix for any HTTP method call to return
261
+ the raw response object instead of the parsed content.
262
+
263
+ For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#accessing-raw-response-data-eg-headers
264
+ """
265
+ return AsyncV1ResourceWithRawResponse(self)
266
+
267
+ @cached_property
268
+ def with_streaming_response(self) -> AsyncV1ResourceWithStreamingResponse:
269
+ """
270
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
271
+
272
+ For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#with_streaming_response
273
+ """
274
+ return AsyncV1ResourceWithStreamingResponse(self)
275
+
276
+
277
+ class V1ResourceWithRawResponse:
278
+ def __init__(self, v1: V1Resource) -> None:
279
+ self._v1 = v1
280
+
281
+ @cached_property
282
+ def auth(self) -> AuthResourceWithRawResponse:
283
+ return AuthResourceWithRawResponse(self._v1.auth)
284
+
285
+ @cached_property
286
+ def organizations(self) -> OrganizationsResourceWithRawResponse:
287
+ return OrganizationsResourceWithRawResponse(self._v1.organizations)
288
+
289
+ @cached_property
290
+ def materials(self) -> MaterialsResourceWithRawResponse:
291
+ return MaterialsResourceWithRawResponse(self._v1.materials)
292
+
293
+ @cached_property
294
+ def usage(self) -> UsageResourceWithRawResponse:
295
+ return UsageResourceWithRawResponse(self._v1.usage)
296
+
297
+ @cached_property
298
+ def folders(self) -> FoldersResourceWithRawResponse:
299
+ return FoldersResourceWithRawResponse(self._v1.folders)
300
+
301
+ @cached_property
302
+ def components(self) -> ComponentsResourceWithRawResponse:
303
+ return ComponentsResourceWithRawResponse(self._v1.components)
304
+
305
+ @cached_property
306
+ def embed(self) -> EmbedResourceWithRawResponse:
307
+ return EmbedResourceWithRawResponse(self._v1.embed)
308
+
309
+ @cached_property
310
+ def chat(self) -> ChatResourceWithRawResponse:
311
+ return ChatResourceWithRawResponse(self._v1.chat)
312
+
313
+ @cached_property
314
+ def flashcards(self) -> FlashcardsResourceWithRawResponse:
315
+ return FlashcardsResourceWithRawResponse(self._v1.flashcards)
316
+
317
+ @cached_property
318
+ def tests(self) -> TestsResourceWithRawResponse:
319
+ return TestsResourceWithRawResponse(self._v1.tests)
320
+
321
+ @cached_property
322
+ def audio_recaps(self) -> AudioRecapsResourceWithRawResponse:
323
+ return AudioRecapsResourceWithRawResponse(self._v1.audio_recaps)
324
+
325
+ @cached_property
326
+ def scenarios(self) -> ScenariosResourceWithRawResponse:
327
+ return ScenariosResourceWithRawResponse(self._v1.scenarios)
328
+
329
+ @cached_property
330
+ def explainers(self) -> ExplainersResourceWithRawResponse:
331
+ return ExplainersResourceWithRawResponse(self._v1.explainers)
332
+
333
+ @cached_property
334
+ def upload(self) -> UploadResourceWithRawResponse:
335
+ return UploadResourceWithRawResponse(self._v1.upload)
336
+
337
+
338
+ class AsyncV1ResourceWithRawResponse:
339
+ def __init__(self, v1: AsyncV1Resource) -> None:
340
+ self._v1 = v1
341
+
342
+ @cached_property
343
+ def auth(self) -> AsyncAuthResourceWithRawResponse:
344
+ return AsyncAuthResourceWithRawResponse(self._v1.auth)
345
+
346
+ @cached_property
347
+ def organizations(self) -> AsyncOrganizationsResourceWithRawResponse:
348
+ return AsyncOrganizationsResourceWithRawResponse(self._v1.organizations)
349
+
350
+ @cached_property
351
+ def materials(self) -> AsyncMaterialsResourceWithRawResponse:
352
+ return AsyncMaterialsResourceWithRawResponse(self._v1.materials)
353
+
354
+ @cached_property
355
+ def usage(self) -> AsyncUsageResourceWithRawResponse:
356
+ return AsyncUsageResourceWithRawResponse(self._v1.usage)
357
+
358
+ @cached_property
359
+ def folders(self) -> AsyncFoldersResourceWithRawResponse:
360
+ return AsyncFoldersResourceWithRawResponse(self._v1.folders)
361
+
362
+ @cached_property
363
+ def components(self) -> AsyncComponentsResourceWithRawResponse:
364
+ return AsyncComponentsResourceWithRawResponse(self._v1.components)
365
+
366
+ @cached_property
367
+ def embed(self) -> AsyncEmbedResourceWithRawResponse:
368
+ return AsyncEmbedResourceWithRawResponse(self._v1.embed)
369
+
370
+ @cached_property
371
+ def chat(self) -> AsyncChatResourceWithRawResponse:
372
+ return AsyncChatResourceWithRawResponse(self._v1.chat)
373
+
374
+ @cached_property
375
+ def flashcards(self) -> AsyncFlashcardsResourceWithRawResponse:
376
+ return AsyncFlashcardsResourceWithRawResponse(self._v1.flashcards)
377
+
378
+ @cached_property
379
+ def tests(self) -> AsyncTestsResourceWithRawResponse:
380
+ return AsyncTestsResourceWithRawResponse(self._v1.tests)
381
+
382
+ @cached_property
383
+ def audio_recaps(self) -> AsyncAudioRecapsResourceWithRawResponse:
384
+ return AsyncAudioRecapsResourceWithRawResponse(self._v1.audio_recaps)
385
+
386
+ @cached_property
387
+ def scenarios(self) -> AsyncScenariosResourceWithRawResponse:
388
+ return AsyncScenariosResourceWithRawResponse(self._v1.scenarios)
389
+
390
+ @cached_property
391
+ def explainers(self) -> AsyncExplainersResourceWithRawResponse:
392
+ return AsyncExplainersResourceWithRawResponse(self._v1.explainers)
393
+
394
+ @cached_property
395
+ def upload(self) -> AsyncUploadResourceWithRawResponse:
396
+ return AsyncUploadResourceWithRawResponse(self._v1.upload)
397
+
398
+
399
+ class V1ResourceWithStreamingResponse:
400
+ def __init__(self, v1: V1Resource) -> None:
401
+ self._v1 = v1
402
+
403
+ @cached_property
404
+ def auth(self) -> AuthResourceWithStreamingResponse:
405
+ return AuthResourceWithStreamingResponse(self._v1.auth)
406
+
407
+ @cached_property
408
+ def organizations(self) -> OrganizationsResourceWithStreamingResponse:
409
+ return OrganizationsResourceWithStreamingResponse(self._v1.organizations)
410
+
411
+ @cached_property
412
+ def materials(self) -> MaterialsResourceWithStreamingResponse:
413
+ return MaterialsResourceWithStreamingResponse(self._v1.materials)
414
+
415
+ @cached_property
416
+ def usage(self) -> UsageResourceWithStreamingResponse:
417
+ return UsageResourceWithStreamingResponse(self._v1.usage)
418
+
419
+ @cached_property
420
+ def folders(self) -> FoldersResourceWithStreamingResponse:
421
+ return FoldersResourceWithStreamingResponse(self._v1.folders)
422
+
423
+ @cached_property
424
+ def components(self) -> ComponentsResourceWithStreamingResponse:
425
+ return ComponentsResourceWithStreamingResponse(self._v1.components)
426
+
427
+ @cached_property
428
+ def embed(self) -> EmbedResourceWithStreamingResponse:
429
+ return EmbedResourceWithStreamingResponse(self._v1.embed)
430
+
431
+ @cached_property
432
+ def chat(self) -> ChatResourceWithStreamingResponse:
433
+ return ChatResourceWithStreamingResponse(self._v1.chat)
434
+
435
+ @cached_property
436
+ def flashcards(self) -> FlashcardsResourceWithStreamingResponse:
437
+ return FlashcardsResourceWithStreamingResponse(self._v1.flashcards)
438
+
439
+ @cached_property
440
+ def tests(self) -> TestsResourceWithStreamingResponse:
441
+ return TestsResourceWithStreamingResponse(self._v1.tests)
442
+
443
+ @cached_property
444
+ def audio_recaps(self) -> AudioRecapsResourceWithStreamingResponse:
445
+ return AudioRecapsResourceWithStreamingResponse(self._v1.audio_recaps)
446
+
447
+ @cached_property
448
+ def scenarios(self) -> ScenariosResourceWithStreamingResponse:
449
+ return ScenariosResourceWithStreamingResponse(self._v1.scenarios)
450
+
451
+ @cached_property
452
+ def explainers(self) -> ExplainersResourceWithStreamingResponse:
453
+ return ExplainersResourceWithStreamingResponse(self._v1.explainers)
454
+
455
+ @cached_property
456
+ def upload(self) -> UploadResourceWithStreamingResponse:
457
+ return UploadResourceWithStreamingResponse(self._v1.upload)
458
+
459
+
460
+ class AsyncV1ResourceWithStreamingResponse:
461
+ def __init__(self, v1: AsyncV1Resource) -> None:
462
+ self._v1 = v1
463
+
464
+ @cached_property
465
+ def auth(self) -> AsyncAuthResourceWithStreamingResponse:
466
+ return AsyncAuthResourceWithStreamingResponse(self._v1.auth)
467
+
468
+ @cached_property
469
+ def organizations(self) -> AsyncOrganizationsResourceWithStreamingResponse:
470
+ return AsyncOrganizationsResourceWithStreamingResponse(self._v1.organizations)
471
+
472
+ @cached_property
473
+ def materials(self) -> AsyncMaterialsResourceWithStreamingResponse:
474
+ return AsyncMaterialsResourceWithStreamingResponse(self._v1.materials)
475
+
476
+ @cached_property
477
+ def usage(self) -> AsyncUsageResourceWithStreamingResponse:
478
+ return AsyncUsageResourceWithStreamingResponse(self._v1.usage)
479
+
480
+ @cached_property
481
+ def folders(self) -> AsyncFoldersResourceWithStreamingResponse:
482
+ return AsyncFoldersResourceWithStreamingResponse(self._v1.folders)
483
+
484
+ @cached_property
485
+ def components(self) -> AsyncComponentsResourceWithStreamingResponse:
486
+ return AsyncComponentsResourceWithStreamingResponse(self._v1.components)
487
+
488
+ @cached_property
489
+ def embed(self) -> AsyncEmbedResourceWithStreamingResponse:
490
+ return AsyncEmbedResourceWithStreamingResponse(self._v1.embed)
491
+
492
+ @cached_property
493
+ def chat(self) -> AsyncChatResourceWithStreamingResponse:
494
+ return AsyncChatResourceWithStreamingResponse(self._v1.chat)
495
+
496
+ @cached_property
497
+ def flashcards(self) -> AsyncFlashcardsResourceWithStreamingResponse:
498
+ return AsyncFlashcardsResourceWithStreamingResponse(self._v1.flashcards)
499
+
500
+ @cached_property
501
+ def tests(self) -> AsyncTestsResourceWithStreamingResponse:
502
+ return AsyncTestsResourceWithStreamingResponse(self._v1.tests)
503
+
504
+ @cached_property
505
+ def audio_recaps(self) -> AsyncAudioRecapsResourceWithStreamingResponse:
506
+ return AsyncAudioRecapsResourceWithStreamingResponse(self._v1.audio_recaps)
507
+
508
+ @cached_property
509
+ def scenarios(self) -> AsyncScenariosResourceWithStreamingResponse:
510
+ return AsyncScenariosResourceWithStreamingResponse(self._v1.scenarios)
511
+
512
+ @cached_property
513
+ def explainers(self) -> AsyncExplainersResourceWithStreamingResponse:
514
+ return AsyncExplainersResourceWithStreamingResponse(self._v1.explainers)
515
+
516
+ @cached_property
517
+ def upload(self) -> AsyncUploadResourceWithStreamingResponse:
518
+ return AsyncUploadResourceWithStreamingResponse(self._v1.upload)
@@ -0,0 +1,3 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,52 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .chat_stream_params import ChatStreamParams as ChatStreamParams
6
+ from .folder_list_params import FolderListParams as FolderListParams
7
+ from .test_create_params import TestCreateParams as TestCreateParams
8
+ from .test_retake_params import TestRetakeParams as TestRetakeParams
9
+ from .test_submit_params import TestSubmitParams as TestSubmitParams
10
+ from .embed_verify_params import EmbedVerifyParams as EmbedVerifyParams
11
+ from .folder_create_params import FolderCreateParams as FolderCreateParams
12
+ from .folder_update_params import FolderUpdateParams as FolderUpdateParams
13
+ from .material_list_params import MaterialListParams as MaterialListParams
14
+ from .component_list_params import ComponentListParams as ComponentListParams
15
+ from .flashcard_rate_params import FlashcardRateParams as FlashcardRateParams
16
+ from .component_embed_params import ComponentEmbedParams as ComponentEmbedParams
17
+ from .embed_get_theme_params import EmbedGetThemeParams as EmbedGetThemeParams
18
+ from .material_create_params import MaterialCreateParams as MaterialCreateParams
19
+ from .material_list_response import MaterialListResponse as MaterialListResponse
20
+ from .scenario_create_params import ScenarioCreateParams as ScenarioCreateParams
21
+ from .scenario_update_params import ScenarioUpdateParams as ScenarioUpdateParams
22
+ from .usage_get_stats_params import UsageGetStatsParams as UsageGetStatsParams
23
+ from .component_create_params import ComponentCreateParams as ComponentCreateParams
24
+ from .component_list_response import ComponentListResponse as ComponentListResponse
25
+ from .component_update_params import ComponentUpdateParams as ComponentUpdateParams
26
+ from .usage_track_chat_params import UsageTrackChatParams as UsageTrackChatParams
27
+ from .chat_send_message_params import ChatSendMessageParams as ChatSendMessageParams
28
+ from .component_embed_response import ComponentEmbedResponse as ComponentEmbedResponse
29
+ from .flashcard_get_all_params import FlashcardGetAllParams as FlashcardGetAllParams
30
+ from .flashcard_get_due_params import FlashcardGetDueParams as FlashcardGetDueParams
31
+ from .material_create_response import MaterialCreateResponse as MaterialCreateResponse
32
+ from .usage_get_summary_params import UsageGetSummaryParams as UsageGetSummaryParams
33
+ from .usage_list_events_params import UsageListEventsParams as UsageListEventsParams
34
+ from .usage_track_event_params import UsageTrackEventParams as UsageTrackEventParams
35
+ from .component_create_response import ComponentCreateResponse as ComponentCreateResponse
36
+ from .component_update_response import ComponentUpdateResponse as ComponentUpdateResponse
37
+ from .test_submit_answer_params import TestSubmitAnswerParams as TestSubmitAnswerParams
38
+ from .auth_reset_password_params import AuthResetPasswordParams as AuthResetPasswordParams
39
+ from .flashcard_get_stats_params import FlashcardGetStatsParams as FlashcardGetStatsParams
40
+ from .material_retrieve_response import MaterialRetrieveResponse as MaterialRetrieveResponse
41
+ from .component_retrieve_response import ComponentRetrieveResponse as ComponentRetrieveResponse
42
+ from .chat_retrieve_session_params import ChatRetrieveSessionParams as ChatRetrieveSessionParams
43
+ from .flashcard_get_types_response import FlashcardGetTypesResponse as FlashcardGetTypesResponse
44
+ from .auth_register_new_user_params import AuthRegisterNewUserParams as AuthRegisterNewUserParams
45
+ from .flashcard_batch_process_params import FlashcardBatchProcessParams as FlashcardBatchProcessParams
46
+ from .explainer_handle_webhook_params import ExplainerHandleWebhookParams as ExplainerHandleWebhookParams
47
+ from .flashcard_batch_process_response import FlashcardBatchProcessResponse as FlashcardBatchProcessResponse
48
+ from .material_get_download_url_params import MaterialGetDownloadURLParams as MaterialGetDownloadURLParams
49
+ from .auth_request_password_reset_params import AuthRequestPasswordResetParams as AuthRequestPasswordResetParams
50
+ from .flashcard_get_algorithm_info_response import (
51
+ FlashcardGetAlgorithmInfoResponse as FlashcardGetAlgorithmInfoResponse,
52
+ )
@@ -0,0 +1,3 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,3 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,3 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,3 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .login_verify_2fa_params import LoginVerify2faParams as LoginVerify2faParams
6
+ from .number_2fa_enable_params import Number2faEnableParams as Number2faEnableParams
7
+ from .login_authenticate_params import LoginAuthenticateParams as LoginAuthenticateParams
8
+ from .number_2fa_disable_params import Number2faDisableParams as Number2faDisableParams
9
+ from .number_2fa_send_code_params import Number2faSendCodeParams as Number2faSendCodeParams
10
+ from .login_verify_backup_code_params import LoginVerifyBackupCodeParams as LoginVerifyBackupCodeParams
11
+ from .number_2fa_regenerate_backup_codes_params import (
12
+ Number2faRegenerateBackupCodesParams as Number2faRegenerateBackupCodesParams,
13
+ )
@@ -0,0 +1,15 @@
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, TypedDict
6
+
7
+ __all__ = ["LoginAuthenticateParams"]
8
+
9
+
10
+ class LoginAuthenticateParams(TypedDict, total=False):
11
+ email: Required[str]
12
+ """User email address"""
13
+
14
+ password: Required[str]
15
+ """User password"""
@@ -0,0 +1,15 @@
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, TypedDict
6
+
7
+ __all__ = ["LoginVerify2faParams"]
8
+
9
+
10
+ class LoginVerify2faParams(TypedDict, total=False):
11
+ code: Required[str]
12
+ """6-digit verification code"""
13
+
14
+ email: Required[str]
15
+ """User email address"""
@@ -0,0 +1,17 @@
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__ = ["LoginVerifyBackupCodeParams"]
10
+
11
+
12
+ class LoginVerifyBackupCodeParams(TypedDict, total=False):
13
+ backup_code: Required[Annotated[str, PropertyInfo(alias="backupCode")]]
14
+ """Backup code"""
15
+
16
+ email: Required[str]
17
+ """User email address"""
@@ -0,0 +1,12 @@
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, TypedDict
6
+
7
+ __all__ = ["Number2faDisableParams"]
8
+
9
+
10
+ class Number2faDisableParams(TypedDict, total=False):
11
+ password: Required[str]
12
+ """User password for verification"""
@@ -0,0 +1,12 @@
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, TypedDict
6
+
7
+ __all__ = ["Number2faEnableParams"]
8
+
9
+
10
+ class Number2faEnableParams(TypedDict, total=False):
11
+ password: Required[str]
12
+ """User password for verification"""