mirascope 2.0.0__py3-none-any.whl → 2.0.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 (443) hide show
  1. mirascope/__init__.py +2 -11
  2. mirascope/graphs/__init__.py +22 -0
  3. mirascope/graphs/finite_state_machine.py +625 -0
  4. mirascope/llm/__init__.py +15 -96
  5. mirascope/llm/agents/__init__.py +15 -0
  6. mirascope/llm/agents/agent.py +97 -0
  7. mirascope/llm/agents/agent_template.py +45 -0
  8. mirascope/llm/agents/decorator.py +176 -0
  9. mirascope/llm/calls/__init__.py +1 -2
  10. mirascope/llm/calls/base_call.py +33 -0
  11. mirascope/llm/calls/calls.py +58 -84
  12. mirascope/llm/calls/decorator.py +120 -140
  13. mirascope/llm/clients/__init__.py +34 -0
  14. mirascope/llm/clients/_missing_import_stubs.py +47 -0
  15. mirascope/llm/clients/anthropic/__init__.py +25 -0
  16. mirascope/llm/{providers/openai/completions → clients/anthropic}/_utils/__init__.py +0 -2
  17. mirascope/llm/{providers → clients}/anthropic/_utils/decode.py +22 -66
  18. mirascope/llm/clients/anthropic/_utils/encode.py +243 -0
  19. mirascope/llm/clients/anthropic/clients.py +819 -0
  20. mirascope/llm/clients/anthropic/model_ids.py +8 -0
  21. mirascope/llm/{providers → clients}/base/__init__.py +5 -4
  22. mirascope/llm/{providers → clients}/base/_utils.py +17 -78
  23. mirascope/llm/{providers/base/base_provider.py → clients/base/client.py} +145 -468
  24. mirascope/llm/{models → clients/base}/params.py +37 -16
  25. mirascope/llm/clients/google/__init__.py +20 -0
  26. mirascope/llm/{providers/openai/responses → clients/google}/_utils/__init__.py +0 -2
  27. mirascope/llm/{providers → clients}/google/_utils/decode.py +22 -98
  28. mirascope/llm/{providers → clients}/google/_utils/encode.py +46 -168
  29. mirascope/llm/clients/google/clients.py +853 -0
  30. mirascope/llm/clients/google/model_ids.py +15 -0
  31. mirascope/llm/clients/openai/__init__.py +25 -0
  32. mirascope/llm/clients/openai/completions/__init__.py +28 -0
  33. mirascope/llm/{providers/google → clients/openai/completions}/_utils/__init__.py +0 -4
  34. mirascope/llm/{providers → clients}/openai/completions/_utils/decode.py +9 -74
  35. mirascope/llm/{providers → clients}/openai/completions/_utils/encode.py +52 -70
  36. mirascope/llm/clients/openai/completions/_utils/model_features.py +81 -0
  37. mirascope/llm/clients/openai/completions/clients.py +833 -0
  38. mirascope/llm/clients/openai/completions/model_ids.py +8 -0
  39. mirascope/llm/clients/openai/responses/__init__.py +26 -0
  40. mirascope/llm/clients/openai/responses/_utils/__init__.py +13 -0
  41. mirascope/llm/{providers → clients}/openai/responses/_utils/decode.py +14 -80
  42. mirascope/llm/{providers → clients}/openai/responses/_utils/encode.py +41 -92
  43. mirascope/llm/clients/openai/responses/_utils/model_features.py +87 -0
  44. mirascope/llm/clients/openai/responses/clients.py +832 -0
  45. mirascope/llm/clients/openai/responses/model_ids.py +8 -0
  46. mirascope/llm/clients/openai/shared/__init__.py +7 -0
  47. mirascope/llm/clients/openai/shared/_utils.py +55 -0
  48. mirascope/llm/clients/providers.py +175 -0
  49. mirascope/llm/content/__init__.py +2 -3
  50. mirascope/llm/content/tool_call.py +0 -6
  51. mirascope/llm/content/tool_output.py +5 -22
  52. mirascope/llm/context/_utils.py +6 -19
  53. mirascope/llm/exceptions.py +43 -298
  54. mirascope/llm/formatting/__init__.py +2 -19
  55. mirascope/llm/formatting/_utils.py +74 -0
  56. mirascope/llm/formatting/format.py +30 -219
  57. mirascope/llm/formatting/from_call_args.py +2 -2
  58. mirascope/llm/formatting/partial.py +7 -80
  59. mirascope/llm/formatting/types.py +64 -21
  60. mirascope/llm/mcp/__init__.py +2 -2
  61. mirascope/llm/mcp/client.py +118 -0
  62. mirascope/llm/messages/__init__.py +0 -3
  63. mirascope/llm/messages/message.py +5 -13
  64. mirascope/llm/models/__init__.py +2 -7
  65. mirascope/llm/models/models.py +139 -315
  66. mirascope/llm/prompts/__init__.py +12 -13
  67. mirascope/llm/prompts/_utils.py +43 -14
  68. mirascope/llm/prompts/decorator.py +204 -144
  69. mirascope/llm/prompts/protocols.py +59 -25
  70. mirascope/llm/responses/__init__.py +1 -9
  71. mirascope/llm/responses/_utils.py +12 -102
  72. mirascope/llm/responses/base_response.py +6 -18
  73. mirascope/llm/responses/base_stream_response.py +50 -173
  74. mirascope/llm/responses/finish_reason.py +0 -1
  75. mirascope/llm/responses/response.py +13 -34
  76. mirascope/llm/responses/root_response.py +29 -100
  77. mirascope/llm/responses/stream_response.py +31 -40
  78. mirascope/llm/tools/__init__.py +2 -9
  79. mirascope/llm/tools/_utils.py +3 -12
  80. mirascope/llm/tools/decorator.py +16 -25
  81. mirascope/llm/tools/protocols.py +4 -4
  82. mirascope/llm/tools/tool_schema.py +19 -87
  83. mirascope/llm/tools/toolkit.py +27 -35
  84. mirascope/llm/tools/tools.py +41 -135
  85. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/METADATA +13 -90
  86. mirascope-2.0.0a1.dist-info/RECORD +102 -0
  87. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/WHEEL +1 -1
  88. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/licenses/LICENSE +1 -1
  89. mirascope/_stubs.py +0 -363
  90. mirascope/api/__init__.py +0 -14
  91. mirascope/api/_generated/README.md +0 -207
  92. mirascope/api/_generated/__init__.py +0 -440
  93. mirascope/api/_generated/annotations/__init__.py +0 -33
  94. mirascope/api/_generated/annotations/client.py +0 -506
  95. mirascope/api/_generated/annotations/raw_client.py +0 -1414
  96. mirascope/api/_generated/annotations/types/__init__.py +0 -31
  97. mirascope/api/_generated/annotations/types/annotations_create_request_label.py +0 -5
  98. mirascope/api/_generated/annotations/types/annotations_create_response.py +0 -48
  99. mirascope/api/_generated/annotations/types/annotations_create_response_label.py +0 -5
  100. mirascope/api/_generated/annotations/types/annotations_get_response.py +0 -48
  101. mirascope/api/_generated/annotations/types/annotations_get_response_label.py +0 -5
  102. mirascope/api/_generated/annotations/types/annotations_list_request_label.py +0 -5
  103. mirascope/api/_generated/annotations/types/annotations_list_response.py +0 -21
  104. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +0 -50
  105. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item_label.py +0 -5
  106. mirascope/api/_generated/annotations/types/annotations_update_request_label.py +0 -5
  107. mirascope/api/_generated/annotations/types/annotations_update_response.py +0 -48
  108. mirascope/api/_generated/annotations/types/annotations_update_response_label.py +0 -5
  109. mirascope/api/_generated/api_keys/__init__.py +0 -17
  110. mirascope/api/_generated/api_keys/client.py +0 -530
  111. mirascope/api/_generated/api_keys/raw_client.py +0 -1236
  112. mirascope/api/_generated/api_keys/types/__init__.py +0 -15
  113. mirascope/api/_generated/api_keys/types/api_keys_create_response.py +0 -28
  114. mirascope/api/_generated/api_keys/types/api_keys_get_response.py +0 -27
  115. mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +0 -40
  116. mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py +0 -27
  117. mirascope/api/_generated/client.py +0 -211
  118. mirascope/api/_generated/core/__init__.py +0 -52
  119. mirascope/api/_generated/core/api_error.py +0 -23
  120. mirascope/api/_generated/core/client_wrapper.py +0 -46
  121. mirascope/api/_generated/core/datetime_utils.py +0 -28
  122. mirascope/api/_generated/core/file.py +0 -67
  123. mirascope/api/_generated/core/force_multipart.py +0 -16
  124. mirascope/api/_generated/core/http_client.py +0 -543
  125. mirascope/api/_generated/core/http_response.py +0 -55
  126. mirascope/api/_generated/core/jsonable_encoder.py +0 -100
  127. mirascope/api/_generated/core/pydantic_utilities.py +0 -255
  128. mirascope/api/_generated/core/query_encoder.py +0 -58
  129. mirascope/api/_generated/core/remove_none_from_dict.py +0 -11
  130. mirascope/api/_generated/core/request_options.py +0 -35
  131. mirascope/api/_generated/core/serialization.py +0 -276
  132. mirascope/api/_generated/docs/__init__.py +0 -4
  133. mirascope/api/_generated/docs/client.py +0 -91
  134. mirascope/api/_generated/docs/raw_client.py +0 -178
  135. mirascope/api/_generated/environment.py +0 -9
  136. mirascope/api/_generated/environments/__init__.py +0 -23
  137. mirascope/api/_generated/environments/client.py +0 -649
  138. mirascope/api/_generated/environments/raw_client.py +0 -1567
  139. mirascope/api/_generated/environments/types/__init__.py +0 -25
  140. mirascope/api/_generated/environments/types/environments_create_response.py +0 -24
  141. mirascope/api/_generated/environments/types/environments_get_analytics_response.py +0 -60
  142. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +0 -24
  143. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_models_item.py +0 -22
  144. mirascope/api/_generated/environments/types/environments_get_response.py +0 -24
  145. mirascope/api/_generated/environments/types/environments_list_response_item.py +0 -24
  146. mirascope/api/_generated/environments/types/environments_update_response.py +0 -24
  147. mirascope/api/_generated/errors/__init__.py +0 -25
  148. mirascope/api/_generated/errors/bad_request_error.py +0 -14
  149. mirascope/api/_generated/errors/conflict_error.py +0 -14
  150. mirascope/api/_generated/errors/forbidden_error.py +0 -11
  151. mirascope/api/_generated/errors/internal_server_error.py +0 -10
  152. mirascope/api/_generated/errors/not_found_error.py +0 -11
  153. mirascope/api/_generated/errors/payment_required_error.py +0 -15
  154. mirascope/api/_generated/errors/service_unavailable_error.py +0 -14
  155. mirascope/api/_generated/errors/too_many_requests_error.py +0 -15
  156. mirascope/api/_generated/errors/unauthorized_error.py +0 -11
  157. mirascope/api/_generated/functions/__init__.py +0 -39
  158. mirascope/api/_generated/functions/client.py +0 -647
  159. mirascope/api/_generated/functions/raw_client.py +0 -1890
  160. mirascope/api/_generated/functions/types/__init__.py +0 -53
  161. mirascope/api/_generated/functions/types/functions_create_request_dependencies_value.py +0 -20
  162. mirascope/api/_generated/functions/types/functions_create_response.py +0 -37
  163. mirascope/api/_generated/functions/types/functions_create_response_dependencies_value.py +0 -20
  164. mirascope/api/_generated/functions/types/functions_find_by_hash_response.py +0 -39
  165. mirascope/api/_generated/functions/types/functions_find_by_hash_response_dependencies_value.py +0 -20
  166. mirascope/api/_generated/functions/types/functions_get_by_env_response.py +0 -53
  167. mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +0 -22
  168. mirascope/api/_generated/functions/types/functions_get_response.py +0 -37
  169. mirascope/api/_generated/functions/types/functions_get_response_dependencies_value.py +0 -20
  170. mirascope/api/_generated/functions/types/functions_list_by_env_response.py +0 -25
  171. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +0 -56
  172. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +0 -22
  173. mirascope/api/_generated/functions/types/functions_list_response.py +0 -21
  174. mirascope/api/_generated/functions/types/functions_list_response_functions_item.py +0 -41
  175. mirascope/api/_generated/functions/types/functions_list_response_functions_item_dependencies_value.py +0 -20
  176. mirascope/api/_generated/health/__init__.py +0 -7
  177. mirascope/api/_generated/health/client.py +0 -92
  178. mirascope/api/_generated/health/raw_client.py +0 -175
  179. mirascope/api/_generated/health/types/__init__.py +0 -8
  180. mirascope/api/_generated/health/types/health_check_response.py +0 -22
  181. mirascope/api/_generated/health/types/health_check_response_status.py +0 -5
  182. mirascope/api/_generated/organization_invitations/__init__.py +0 -33
  183. mirascope/api/_generated/organization_invitations/client.py +0 -546
  184. mirascope/api/_generated/organization_invitations/raw_client.py +0 -1519
  185. mirascope/api/_generated/organization_invitations/types/__init__.py +0 -53
  186. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +0 -34
  187. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +0 -7
  188. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +0 -7
  189. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +0 -48
  190. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +0 -7
  191. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +0 -7
  192. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +0 -48
  193. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +0 -7
  194. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +0 -7
  195. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +0 -48
  196. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +0 -7
  197. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +0 -7
  198. mirascope/api/_generated/organization_memberships/__init__.py +0 -19
  199. mirascope/api/_generated/organization_memberships/client.py +0 -302
  200. mirascope/api/_generated/organization_memberships/raw_client.py +0 -736
  201. mirascope/api/_generated/organization_memberships/types/__init__.py +0 -27
  202. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +0 -33
  203. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +0 -7
  204. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +0 -7
  205. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +0 -31
  206. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +0 -7
  207. mirascope/api/_generated/organizations/__init__.py +0 -51
  208. mirascope/api/_generated/organizations/client.py +0 -869
  209. mirascope/api/_generated/organizations/raw_client.py +0 -2593
  210. mirascope/api/_generated/organizations/types/__init__.py +0 -71
  211. mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +0 -24
  212. mirascope/api/_generated/organizations/types/organizations_create_response.py +0 -26
  213. mirascope/api/_generated/organizations/types/organizations_create_response_role.py +0 -5
  214. mirascope/api/_generated/organizations/types/organizations_get_response.py +0 -26
  215. mirascope/api/_generated/organizations/types/organizations_get_response_role.py +0 -5
  216. mirascope/api/_generated/organizations/types/organizations_list_response_item.py +0 -26
  217. mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +0 -5
  218. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +0 -7
  219. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +0 -47
  220. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +0 -33
  221. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +0 -7
  222. mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +0 -24
  223. mirascope/api/_generated/organizations/types/organizations_subscription_response.py +0 -53
  224. mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +0 -7
  225. mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +0 -26
  226. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +0 -34
  227. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +0 -7
  228. mirascope/api/_generated/organizations/types/organizations_update_response.py +0 -26
  229. mirascope/api/_generated/organizations/types/organizations_update_response_role.py +0 -5
  230. mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +0 -7
  231. mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +0 -35
  232. mirascope/api/_generated/project_memberships/__init__.py +0 -25
  233. mirascope/api/_generated/project_memberships/client.py +0 -437
  234. mirascope/api/_generated/project_memberships/raw_client.py +0 -1039
  235. mirascope/api/_generated/project_memberships/types/__init__.py +0 -29
  236. mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +0 -7
  237. mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +0 -35
  238. mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +0 -7
  239. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +0 -33
  240. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +0 -7
  241. mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +0 -7
  242. mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +0 -35
  243. mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +0 -7
  244. mirascope/api/_generated/projects/__init__.py +0 -7
  245. mirascope/api/_generated/projects/client.py +0 -428
  246. mirascope/api/_generated/projects/raw_client.py +0 -1302
  247. mirascope/api/_generated/projects/types/__init__.py +0 -10
  248. mirascope/api/_generated/projects/types/projects_create_response.py +0 -25
  249. mirascope/api/_generated/projects/types/projects_get_response.py +0 -25
  250. mirascope/api/_generated/projects/types/projects_list_response_item.py +0 -25
  251. mirascope/api/_generated/projects/types/projects_update_response.py +0 -25
  252. mirascope/api/_generated/reference.md +0 -4915
  253. mirascope/api/_generated/tags/__init__.py +0 -19
  254. mirascope/api/_generated/tags/client.py +0 -504
  255. mirascope/api/_generated/tags/raw_client.py +0 -1288
  256. mirascope/api/_generated/tags/types/__init__.py +0 -17
  257. mirascope/api/_generated/tags/types/tags_create_response.py +0 -41
  258. mirascope/api/_generated/tags/types/tags_get_response.py +0 -41
  259. mirascope/api/_generated/tags/types/tags_list_response.py +0 -23
  260. mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +0 -41
  261. mirascope/api/_generated/tags/types/tags_update_response.py +0 -41
  262. mirascope/api/_generated/token_cost/__init__.py +0 -7
  263. mirascope/api/_generated/token_cost/client.py +0 -160
  264. mirascope/api/_generated/token_cost/raw_client.py +0 -264
  265. mirascope/api/_generated/token_cost/types/__init__.py +0 -8
  266. mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +0 -54
  267. mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +0 -52
  268. mirascope/api/_generated/traces/__init__.py +0 -97
  269. mirascope/api/_generated/traces/client.py +0 -1103
  270. mirascope/api/_generated/traces/raw_client.py +0 -2322
  271. mirascope/api/_generated/traces/types/__init__.py +0 -155
  272. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item.py +0 -29
  273. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource.py +0 -27
  274. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item.py +0 -23
  275. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value.py +0 -38
  276. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_array_value.py +0 -19
  277. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value.py +0 -22
  278. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item.py +0 -20
  279. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item.py +0 -29
  280. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope.py +0 -31
  281. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item.py +0 -23
  282. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value.py +0 -38
  283. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value.py +0 -19
  284. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value.py +0 -22
  285. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value_values_item.py +0 -22
  286. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item.py +0 -48
  287. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item.py +0 -23
  288. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value.py +0 -38
  289. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value.py +0 -19
  290. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value.py +0 -24
  291. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value_values_item.py +0 -22
  292. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py +0 -20
  293. mirascope/api/_generated/traces/types/traces_create_response.py +0 -24
  294. mirascope/api/_generated/traces/types/traces_create_response_partial_success.py +0 -22
  295. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +0 -60
  296. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_functions_item.py +0 -24
  297. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_models_item.py +0 -22
  298. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +0 -33
  299. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +0 -88
  300. mirascope/api/_generated/traces/types/traces_get_trace_detail_response.py +0 -33
  301. mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +0 -88
  302. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +0 -25
  303. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +0 -44
  304. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +0 -26
  305. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +0 -7
  306. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +0 -7
  307. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +0 -7
  308. mirascope/api/_generated/traces/types/traces_search_by_env_response.py +0 -26
  309. mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +0 -50
  310. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item.py +0 -26
  311. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item_operator.py +0 -7
  312. mirascope/api/_generated/traces/types/traces_search_request_sort_by.py +0 -7
  313. mirascope/api/_generated/traces/types/traces_search_request_sort_order.py +0 -5
  314. mirascope/api/_generated/traces/types/traces_search_response.py +0 -26
  315. mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +0 -50
  316. mirascope/api/_generated/types/__init__.py +0 -85
  317. mirascope/api/_generated/types/already_exists_error.py +0 -22
  318. mirascope/api/_generated/types/already_exists_error_tag.py +0 -5
  319. mirascope/api/_generated/types/bad_request_error_body.py +0 -50
  320. mirascope/api/_generated/types/click_house_error.py +0 -22
  321. mirascope/api/_generated/types/database_error.py +0 -22
  322. mirascope/api/_generated/types/database_error_tag.py +0 -5
  323. mirascope/api/_generated/types/date.py +0 -3
  324. mirascope/api/_generated/types/http_api_decode_error.py +0 -27
  325. mirascope/api/_generated/types/http_api_decode_error_tag.py +0 -5
  326. mirascope/api/_generated/types/immutable_resource_error.py +0 -22
  327. mirascope/api/_generated/types/internal_server_error_body.py +0 -49
  328. mirascope/api/_generated/types/issue.py +0 -38
  329. mirascope/api/_generated/types/issue_tag.py +0 -10
  330. mirascope/api/_generated/types/not_found_error_body.py +0 -22
  331. mirascope/api/_generated/types/not_found_error_tag.py +0 -5
  332. mirascope/api/_generated/types/number_from_string.py +0 -3
  333. mirascope/api/_generated/types/permission_denied_error.py +0 -22
  334. mirascope/api/_generated/types/permission_denied_error_tag.py +0 -5
  335. mirascope/api/_generated/types/plan_limit_exceeded_error.py +0 -32
  336. mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +0 -7
  337. mirascope/api/_generated/types/pricing_unavailable_error.py +0 -23
  338. mirascope/api/_generated/types/property_key.py +0 -7
  339. mirascope/api/_generated/types/property_key_key.py +0 -25
  340. mirascope/api/_generated/types/property_key_key_tag.py +0 -5
  341. mirascope/api/_generated/types/rate_limit_error.py +0 -31
  342. mirascope/api/_generated/types/rate_limit_error_tag.py +0 -5
  343. mirascope/api/_generated/types/service_unavailable_error_body.py +0 -24
  344. mirascope/api/_generated/types/service_unavailable_error_tag.py +0 -7
  345. mirascope/api/_generated/types/stripe_error.py +0 -20
  346. mirascope/api/_generated/types/subscription_past_due_error.py +0 -31
  347. mirascope/api/_generated/types/subscription_past_due_error_tag.py +0 -7
  348. mirascope/api/_generated/types/unauthorized_error_body.py +0 -21
  349. mirascope/api/_generated/types/unauthorized_error_tag.py +0 -5
  350. mirascope/api/client.py +0 -255
  351. mirascope/api/settings.py +0 -99
  352. mirascope/llm/formatting/output_parser.py +0 -178
  353. mirascope/llm/formatting/primitives.py +0 -192
  354. mirascope/llm/mcp/mcp_client.py +0 -130
  355. mirascope/llm/messages/_utils.py +0 -34
  356. mirascope/llm/models/thinking_config.py +0 -61
  357. mirascope/llm/prompts/prompts.py +0 -487
  358. mirascope/llm/providers/__init__.py +0 -62
  359. mirascope/llm/providers/anthropic/__init__.py +0 -11
  360. mirascope/llm/providers/anthropic/_utils/__init__.py +0 -27
  361. mirascope/llm/providers/anthropic/_utils/beta_decode.py +0 -282
  362. mirascope/llm/providers/anthropic/_utils/beta_encode.py +0 -266
  363. mirascope/llm/providers/anthropic/_utils/encode.py +0 -418
  364. mirascope/llm/providers/anthropic/_utils/errors.py +0 -46
  365. mirascope/llm/providers/anthropic/beta_provider.py +0 -374
  366. mirascope/llm/providers/anthropic/model_id.py +0 -23
  367. mirascope/llm/providers/anthropic/model_info.py +0 -87
  368. mirascope/llm/providers/anthropic/provider.py +0 -479
  369. mirascope/llm/providers/google/__init__.py +0 -6
  370. mirascope/llm/providers/google/_utils/errors.py +0 -50
  371. mirascope/llm/providers/google/model_id.py +0 -22
  372. mirascope/llm/providers/google/model_info.py +0 -63
  373. mirascope/llm/providers/google/provider.py +0 -492
  374. mirascope/llm/providers/mirascope/__init__.py +0 -5
  375. mirascope/llm/providers/mirascope/_utils.py +0 -73
  376. mirascope/llm/providers/mirascope/provider.py +0 -349
  377. mirascope/llm/providers/mlx/__init__.py +0 -9
  378. mirascope/llm/providers/mlx/_utils.py +0 -141
  379. mirascope/llm/providers/mlx/encoding/__init__.py +0 -8
  380. mirascope/llm/providers/mlx/encoding/base.py +0 -72
  381. mirascope/llm/providers/mlx/encoding/transformers.py +0 -150
  382. mirascope/llm/providers/mlx/mlx.py +0 -254
  383. mirascope/llm/providers/mlx/model_id.py +0 -17
  384. mirascope/llm/providers/mlx/provider.py +0 -452
  385. mirascope/llm/providers/model_id.py +0 -16
  386. mirascope/llm/providers/ollama/__init__.py +0 -7
  387. mirascope/llm/providers/ollama/provider.py +0 -71
  388. mirascope/llm/providers/openai/__init__.py +0 -15
  389. mirascope/llm/providers/openai/_utils/__init__.py +0 -5
  390. mirascope/llm/providers/openai/_utils/errors.py +0 -46
  391. mirascope/llm/providers/openai/completions/__init__.py +0 -7
  392. mirascope/llm/providers/openai/completions/base_provider.py +0 -542
  393. mirascope/llm/providers/openai/completions/provider.py +0 -22
  394. mirascope/llm/providers/openai/model_id.py +0 -31
  395. mirascope/llm/providers/openai/model_info.py +0 -303
  396. mirascope/llm/providers/openai/provider.py +0 -441
  397. mirascope/llm/providers/openai/responses/__init__.py +0 -5
  398. mirascope/llm/providers/openai/responses/provider.py +0 -513
  399. mirascope/llm/providers/provider_id.py +0 -24
  400. mirascope/llm/providers/provider_registry.py +0 -299
  401. mirascope/llm/providers/together/__init__.py +0 -7
  402. mirascope/llm/providers/together/provider.py +0 -40
  403. mirascope/llm/responses/usage.py +0 -95
  404. mirascope/ops/__init__.py +0 -111
  405. mirascope/ops/_internal/__init__.py +0 -5
  406. mirascope/ops/_internal/closure.py +0 -1169
  407. mirascope/ops/_internal/configuration.py +0 -177
  408. mirascope/ops/_internal/context.py +0 -76
  409. mirascope/ops/_internal/exporters/__init__.py +0 -26
  410. mirascope/ops/_internal/exporters/exporters.py +0 -395
  411. mirascope/ops/_internal/exporters/processors.py +0 -104
  412. mirascope/ops/_internal/exporters/types.py +0 -165
  413. mirascope/ops/_internal/exporters/utils.py +0 -29
  414. mirascope/ops/_internal/instrumentation/__init__.py +0 -8
  415. mirascope/ops/_internal/instrumentation/llm/__init__.py +0 -8
  416. mirascope/ops/_internal/instrumentation/llm/common.py +0 -530
  417. mirascope/ops/_internal/instrumentation/llm/cost.py +0 -190
  418. mirascope/ops/_internal/instrumentation/llm/encode.py +0 -238
  419. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/__init__.py +0 -38
  420. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.py +0 -31
  421. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py +0 -38
  422. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py +0 -18
  423. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py +0 -100
  424. mirascope/ops/_internal/instrumentation/llm/llm.py +0 -161
  425. mirascope/ops/_internal/instrumentation/llm/model.py +0 -1798
  426. mirascope/ops/_internal/instrumentation/llm/response.py +0 -521
  427. mirascope/ops/_internal/instrumentation/llm/serialize.py +0 -300
  428. mirascope/ops/_internal/propagation.py +0 -198
  429. mirascope/ops/_internal/protocols.py +0 -133
  430. mirascope/ops/_internal/session.py +0 -139
  431. mirascope/ops/_internal/spans.py +0 -232
  432. mirascope/ops/_internal/traced_calls.py +0 -375
  433. mirascope/ops/_internal/traced_functions.py +0 -523
  434. mirascope/ops/_internal/tracing.py +0 -353
  435. mirascope/ops/_internal/types.py +0 -13
  436. mirascope/ops/_internal/utils.py +0 -123
  437. mirascope/ops/_internal/versioned_calls.py +0 -512
  438. mirascope/ops/_internal/versioned_functions.py +0 -357
  439. mirascope/ops/_internal/versioning.py +0 -303
  440. mirascope/ops/exceptions.py +0 -21
  441. mirascope-2.0.0.dist-info/RECORD +0 -423
  442. /mirascope/llm/{providers → clients}/base/kwargs.py +0 -0
  443. /mirascope/llm/{providers → clients}/google/message.py +0 -0
@@ -1,736 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
- from json.decoder import JSONDecodeError
5
-
6
- from ..core.api_error import ApiError
7
- from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
- from ..core.http_response import AsyncHttpResponse, HttpResponse
9
- from ..core.jsonable_encoder import jsonable_encoder
10
- from ..core.pydantic_utilities import parse_obj_as
11
- from ..core.request_options import RequestOptions
12
- from ..errors.bad_request_error import BadRequestError
13
- from ..errors.forbidden_error import ForbiddenError
14
- from ..errors.internal_server_error import InternalServerError
15
- from ..errors.not_found_error import NotFoundError
16
- from ..errors.service_unavailable_error import ServiceUnavailableError
17
- from ..errors.too_many_requests_error import TooManyRequestsError
18
- from ..types.not_found_error_body import NotFoundErrorBody
19
- from ..types.permission_denied_error import PermissionDeniedError
20
- from ..types.rate_limit_error import RateLimitError
21
- from .types.organization_memberships_list_response_item import (
22
- OrganizationMembershipsListResponseItem,
23
- )
24
- from .types.organization_memberships_update_request_role import (
25
- OrganizationMembershipsUpdateRequestRole,
26
- )
27
- from .types.organization_memberships_update_response import (
28
- OrganizationMembershipsUpdateResponse,
29
- )
30
-
31
- # this is used as the default value for optional parameters
32
- OMIT = typing.cast(typing.Any, ...)
33
-
34
-
35
- class RawOrganizationMembershipsClient:
36
- def __init__(self, *, client_wrapper: SyncClientWrapper):
37
- self._client_wrapper = client_wrapper
38
-
39
- def list(
40
- self,
41
- organization_id: str,
42
- *,
43
- request_options: typing.Optional[RequestOptions] = None,
44
- ) -> HttpResponse[typing.List[OrganizationMembershipsListResponseItem]]:
45
- """
46
- Parameters
47
- ----------
48
- organization_id : str
49
-
50
- request_options : typing.Optional[RequestOptions]
51
- Request-specific configuration.
52
-
53
- Returns
54
- -------
55
- HttpResponse[typing.List[OrganizationMembershipsListResponseItem]]
56
- Success
57
- """
58
- _response = self._client_wrapper.httpx_client.request(
59
- f"organizations/{jsonable_encoder(organization_id)}/members",
60
- method="GET",
61
- request_options=request_options,
62
- )
63
- try:
64
- if 200 <= _response.status_code < 300:
65
- _data = typing.cast(
66
- typing.List[OrganizationMembershipsListResponseItem],
67
- parse_obj_as(
68
- type_=typing.List[OrganizationMembershipsListResponseItem], # type: ignore
69
- object_=_response.json(),
70
- ),
71
- )
72
- return HttpResponse(response=_response, data=_data)
73
- if _response.status_code == 400:
74
- raise BadRequestError(
75
- headers=dict(_response.headers),
76
- body=typing.cast(
77
- typing.Optional[typing.Any],
78
- parse_obj_as(
79
- type_=typing.Optional[typing.Any], # type: ignore
80
- object_=_response.json(),
81
- ),
82
- ),
83
- )
84
- if _response.status_code == 403:
85
- raise ForbiddenError(
86
- headers=dict(_response.headers),
87
- body=typing.cast(
88
- PermissionDeniedError,
89
- parse_obj_as(
90
- type_=PermissionDeniedError, # type: ignore
91
- object_=_response.json(),
92
- ),
93
- ),
94
- )
95
- if _response.status_code == 404:
96
- raise NotFoundError(
97
- headers=dict(_response.headers),
98
- body=typing.cast(
99
- NotFoundErrorBody,
100
- parse_obj_as(
101
- type_=NotFoundErrorBody, # type: ignore
102
- object_=_response.json(),
103
- ),
104
- ),
105
- )
106
- if _response.status_code == 429:
107
- raise TooManyRequestsError(
108
- headers=dict(_response.headers),
109
- body=typing.cast(
110
- RateLimitError,
111
- parse_obj_as(
112
- type_=RateLimitError, # type: ignore
113
- object_=_response.json(),
114
- ),
115
- ),
116
- )
117
- if _response.status_code == 500:
118
- raise InternalServerError(
119
- headers=dict(_response.headers),
120
- body=typing.cast(
121
- typing.Optional[typing.Any],
122
- parse_obj_as(
123
- type_=typing.Optional[typing.Any], # type: ignore
124
- object_=_response.json(),
125
- ),
126
- ),
127
- )
128
- if _response.status_code == 503:
129
- raise ServiceUnavailableError(
130
- headers=dict(_response.headers),
131
- body=typing.cast(
132
- typing.Optional[typing.Any],
133
- parse_obj_as(
134
- type_=typing.Optional[typing.Any], # type: ignore
135
- object_=_response.json(),
136
- ),
137
- ),
138
- )
139
- _response_json = _response.json()
140
- except JSONDecodeError:
141
- raise ApiError(
142
- status_code=_response.status_code,
143
- headers=dict(_response.headers),
144
- body=_response.text,
145
- )
146
- raise ApiError(
147
- status_code=_response.status_code,
148
- headers=dict(_response.headers),
149
- body=_response_json,
150
- )
151
-
152
- def delete(
153
- self,
154
- organization_id: str,
155
- member_id: str,
156
- *,
157
- request_options: typing.Optional[RequestOptions] = None,
158
- ) -> HttpResponse[None]:
159
- """
160
- Parameters
161
- ----------
162
- organization_id : str
163
-
164
- member_id : str
165
-
166
- request_options : typing.Optional[RequestOptions]
167
- Request-specific configuration.
168
-
169
- Returns
170
- -------
171
- HttpResponse[None]
172
- """
173
- _response = self._client_wrapper.httpx_client.request(
174
- f"organizations/{jsonable_encoder(organization_id)}/members/{jsonable_encoder(member_id)}",
175
- method="DELETE",
176
- request_options=request_options,
177
- )
178
- try:
179
- if 200 <= _response.status_code < 300:
180
- return HttpResponse(response=_response, data=None)
181
- if _response.status_code == 400:
182
- raise BadRequestError(
183
- headers=dict(_response.headers),
184
- body=typing.cast(
185
- typing.Optional[typing.Any],
186
- parse_obj_as(
187
- type_=typing.Optional[typing.Any], # type: ignore
188
- object_=_response.json(),
189
- ),
190
- ),
191
- )
192
- if _response.status_code == 403:
193
- raise ForbiddenError(
194
- headers=dict(_response.headers),
195
- body=typing.cast(
196
- PermissionDeniedError,
197
- parse_obj_as(
198
- type_=PermissionDeniedError, # type: ignore
199
- object_=_response.json(),
200
- ),
201
- ),
202
- )
203
- if _response.status_code == 404:
204
- raise NotFoundError(
205
- headers=dict(_response.headers),
206
- body=typing.cast(
207
- NotFoundErrorBody,
208
- parse_obj_as(
209
- type_=NotFoundErrorBody, # type: ignore
210
- object_=_response.json(),
211
- ),
212
- ),
213
- )
214
- if _response.status_code == 429:
215
- raise TooManyRequestsError(
216
- headers=dict(_response.headers),
217
- body=typing.cast(
218
- RateLimitError,
219
- parse_obj_as(
220
- type_=RateLimitError, # type: ignore
221
- object_=_response.json(),
222
- ),
223
- ),
224
- )
225
- if _response.status_code == 500:
226
- raise InternalServerError(
227
- headers=dict(_response.headers),
228
- body=typing.cast(
229
- typing.Optional[typing.Any],
230
- parse_obj_as(
231
- type_=typing.Optional[typing.Any], # type: ignore
232
- object_=_response.json(),
233
- ),
234
- ),
235
- )
236
- if _response.status_code == 503:
237
- raise ServiceUnavailableError(
238
- headers=dict(_response.headers),
239
- body=typing.cast(
240
- typing.Optional[typing.Any],
241
- parse_obj_as(
242
- type_=typing.Optional[typing.Any], # type: ignore
243
- object_=_response.json(),
244
- ),
245
- ),
246
- )
247
- _response_json = _response.json()
248
- except JSONDecodeError:
249
- raise ApiError(
250
- status_code=_response.status_code,
251
- headers=dict(_response.headers),
252
- body=_response.text,
253
- )
254
- raise ApiError(
255
- status_code=_response.status_code,
256
- headers=dict(_response.headers),
257
- body=_response_json,
258
- )
259
-
260
- def update(
261
- self,
262
- organization_id: str,
263
- member_id: str,
264
- *,
265
- role: OrganizationMembershipsUpdateRequestRole,
266
- request_options: typing.Optional[RequestOptions] = None,
267
- ) -> HttpResponse[OrganizationMembershipsUpdateResponse]:
268
- """
269
- Parameters
270
- ----------
271
- organization_id : str
272
-
273
- member_id : str
274
-
275
- role : OrganizationMembershipsUpdateRequestRole
276
-
277
- request_options : typing.Optional[RequestOptions]
278
- Request-specific configuration.
279
-
280
- Returns
281
- -------
282
- HttpResponse[OrganizationMembershipsUpdateResponse]
283
- Success
284
- """
285
- _response = self._client_wrapper.httpx_client.request(
286
- f"organizations/{jsonable_encoder(organization_id)}/members/{jsonable_encoder(member_id)}",
287
- method="PATCH",
288
- json={
289
- "role": role,
290
- },
291
- headers={
292
- "content-type": "application/json",
293
- },
294
- request_options=request_options,
295
- omit=OMIT,
296
- )
297
- try:
298
- if 200 <= _response.status_code < 300:
299
- _data = typing.cast(
300
- OrganizationMembershipsUpdateResponse,
301
- parse_obj_as(
302
- type_=OrganizationMembershipsUpdateResponse, # type: ignore
303
- object_=_response.json(),
304
- ),
305
- )
306
- return HttpResponse(response=_response, data=_data)
307
- if _response.status_code == 400:
308
- raise BadRequestError(
309
- headers=dict(_response.headers),
310
- body=typing.cast(
311
- typing.Optional[typing.Any],
312
- parse_obj_as(
313
- type_=typing.Optional[typing.Any], # type: ignore
314
- object_=_response.json(),
315
- ),
316
- ),
317
- )
318
- if _response.status_code == 403:
319
- raise ForbiddenError(
320
- headers=dict(_response.headers),
321
- body=typing.cast(
322
- PermissionDeniedError,
323
- parse_obj_as(
324
- type_=PermissionDeniedError, # type: ignore
325
- object_=_response.json(),
326
- ),
327
- ),
328
- )
329
- if _response.status_code == 404:
330
- raise NotFoundError(
331
- headers=dict(_response.headers),
332
- body=typing.cast(
333
- NotFoundErrorBody,
334
- parse_obj_as(
335
- type_=NotFoundErrorBody, # type: ignore
336
- object_=_response.json(),
337
- ),
338
- ),
339
- )
340
- if _response.status_code == 429:
341
- raise TooManyRequestsError(
342
- headers=dict(_response.headers),
343
- body=typing.cast(
344
- RateLimitError,
345
- parse_obj_as(
346
- type_=RateLimitError, # type: ignore
347
- object_=_response.json(),
348
- ),
349
- ),
350
- )
351
- if _response.status_code == 500:
352
- raise InternalServerError(
353
- headers=dict(_response.headers),
354
- body=typing.cast(
355
- typing.Optional[typing.Any],
356
- parse_obj_as(
357
- type_=typing.Optional[typing.Any], # type: ignore
358
- object_=_response.json(),
359
- ),
360
- ),
361
- )
362
- if _response.status_code == 503:
363
- raise ServiceUnavailableError(
364
- headers=dict(_response.headers),
365
- body=typing.cast(
366
- typing.Optional[typing.Any],
367
- parse_obj_as(
368
- type_=typing.Optional[typing.Any], # type: ignore
369
- object_=_response.json(),
370
- ),
371
- ),
372
- )
373
- _response_json = _response.json()
374
- except JSONDecodeError:
375
- raise ApiError(
376
- status_code=_response.status_code,
377
- headers=dict(_response.headers),
378
- body=_response.text,
379
- )
380
- raise ApiError(
381
- status_code=_response.status_code,
382
- headers=dict(_response.headers),
383
- body=_response_json,
384
- )
385
-
386
-
387
- class AsyncRawOrganizationMembershipsClient:
388
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
389
- self._client_wrapper = client_wrapper
390
-
391
- async def list(
392
- self,
393
- organization_id: str,
394
- *,
395
- request_options: typing.Optional[RequestOptions] = None,
396
- ) -> AsyncHttpResponse[typing.List[OrganizationMembershipsListResponseItem]]:
397
- """
398
- Parameters
399
- ----------
400
- organization_id : str
401
-
402
- request_options : typing.Optional[RequestOptions]
403
- Request-specific configuration.
404
-
405
- Returns
406
- -------
407
- AsyncHttpResponse[typing.List[OrganizationMembershipsListResponseItem]]
408
- Success
409
- """
410
- _response = await self._client_wrapper.httpx_client.request(
411
- f"organizations/{jsonable_encoder(organization_id)}/members",
412
- method="GET",
413
- request_options=request_options,
414
- )
415
- try:
416
- if 200 <= _response.status_code < 300:
417
- _data = typing.cast(
418
- typing.List[OrganizationMembershipsListResponseItem],
419
- parse_obj_as(
420
- type_=typing.List[OrganizationMembershipsListResponseItem], # type: ignore
421
- object_=_response.json(),
422
- ),
423
- )
424
- return AsyncHttpResponse(response=_response, data=_data)
425
- if _response.status_code == 400:
426
- raise BadRequestError(
427
- headers=dict(_response.headers),
428
- body=typing.cast(
429
- typing.Optional[typing.Any],
430
- parse_obj_as(
431
- type_=typing.Optional[typing.Any], # type: ignore
432
- object_=_response.json(),
433
- ),
434
- ),
435
- )
436
- if _response.status_code == 403:
437
- raise ForbiddenError(
438
- headers=dict(_response.headers),
439
- body=typing.cast(
440
- PermissionDeniedError,
441
- parse_obj_as(
442
- type_=PermissionDeniedError, # type: ignore
443
- object_=_response.json(),
444
- ),
445
- ),
446
- )
447
- if _response.status_code == 404:
448
- raise NotFoundError(
449
- headers=dict(_response.headers),
450
- body=typing.cast(
451
- NotFoundErrorBody,
452
- parse_obj_as(
453
- type_=NotFoundErrorBody, # type: ignore
454
- object_=_response.json(),
455
- ),
456
- ),
457
- )
458
- if _response.status_code == 429:
459
- raise TooManyRequestsError(
460
- headers=dict(_response.headers),
461
- body=typing.cast(
462
- RateLimitError,
463
- parse_obj_as(
464
- type_=RateLimitError, # type: ignore
465
- object_=_response.json(),
466
- ),
467
- ),
468
- )
469
- if _response.status_code == 500:
470
- raise InternalServerError(
471
- headers=dict(_response.headers),
472
- body=typing.cast(
473
- typing.Optional[typing.Any],
474
- parse_obj_as(
475
- type_=typing.Optional[typing.Any], # type: ignore
476
- object_=_response.json(),
477
- ),
478
- ),
479
- )
480
- if _response.status_code == 503:
481
- raise ServiceUnavailableError(
482
- headers=dict(_response.headers),
483
- body=typing.cast(
484
- typing.Optional[typing.Any],
485
- parse_obj_as(
486
- type_=typing.Optional[typing.Any], # type: ignore
487
- object_=_response.json(),
488
- ),
489
- ),
490
- )
491
- _response_json = _response.json()
492
- except JSONDecodeError:
493
- raise ApiError(
494
- status_code=_response.status_code,
495
- headers=dict(_response.headers),
496
- body=_response.text,
497
- )
498
- raise ApiError(
499
- status_code=_response.status_code,
500
- headers=dict(_response.headers),
501
- body=_response_json,
502
- )
503
-
504
- async def delete(
505
- self,
506
- organization_id: str,
507
- member_id: str,
508
- *,
509
- request_options: typing.Optional[RequestOptions] = None,
510
- ) -> AsyncHttpResponse[None]:
511
- """
512
- Parameters
513
- ----------
514
- organization_id : str
515
-
516
- member_id : str
517
-
518
- request_options : typing.Optional[RequestOptions]
519
- Request-specific configuration.
520
-
521
- Returns
522
- -------
523
- AsyncHttpResponse[None]
524
- """
525
- _response = await self._client_wrapper.httpx_client.request(
526
- f"organizations/{jsonable_encoder(organization_id)}/members/{jsonable_encoder(member_id)}",
527
- method="DELETE",
528
- request_options=request_options,
529
- )
530
- try:
531
- if 200 <= _response.status_code < 300:
532
- return AsyncHttpResponse(response=_response, data=None)
533
- if _response.status_code == 400:
534
- raise BadRequestError(
535
- headers=dict(_response.headers),
536
- body=typing.cast(
537
- typing.Optional[typing.Any],
538
- parse_obj_as(
539
- type_=typing.Optional[typing.Any], # type: ignore
540
- object_=_response.json(),
541
- ),
542
- ),
543
- )
544
- if _response.status_code == 403:
545
- raise ForbiddenError(
546
- headers=dict(_response.headers),
547
- body=typing.cast(
548
- PermissionDeniedError,
549
- parse_obj_as(
550
- type_=PermissionDeniedError, # type: ignore
551
- object_=_response.json(),
552
- ),
553
- ),
554
- )
555
- if _response.status_code == 404:
556
- raise NotFoundError(
557
- headers=dict(_response.headers),
558
- body=typing.cast(
559
- NotFoundErrorBody,
560
- parse_obj_as(
561
- type_=NotFoundErrorBody, # type: ignore
562
- object_=_response.json(),
563
- ),
564
- ),
565
- )
566
- if _response.status_code == 429:
567
- raise TooManyRequestsError(
568
- headers=dict(_response.headers),
569
- body=typing.cast(
570
- RateLimitError,
571
- parse_obj_as(
572
- type_=RateLimitError, # type: ignore
573
- object_=_response.json(),
574
- ),
575
- ),
576
- )
577
- if _response.status_code == 500:
578
- raise InternalServerError(
579
- headers=dict(_response.headers),
580
- body=typing.cast(
581
- typing.Optional[typing.Any],
582
- parse_obj_as(
583
- type_=typing.Optional[typing.Any], # type: ignore
584
- object_=_response.json(),
585
- ),
586
- ),
587
- )
588
- if _response.status_code == 503:
589
- raise ServiceUnavailableError(
590
- headers=dict(_response.headers),
591
- body=typing.cast(
592
- typing.Optional[typing.Any],
593
- parse_obj_as(
594
- type_=typing.Optional[typing.Any], # type: ignore
595
- object_=_response.json(),
596
- ),
597
- ),
598
- )
599
- _response_json = _response.json()
600
- except JSONDecodeError:
601
- raise ApiError(
602
- status_code=_response.status_code,
603
- headers=dict(_response.headers),
604
- body=_response.text,
605
- )
606
- raise ApiError(
607
- status_code=_response.status_code,
608
- headers=dict(_response.headers),
609
- body=_response_json,
610
- )
611
-
612
- async def update(
613
- self,
614
- organization_id: str,
615
- member_id: str,
616
- *,
617
- role: OrganizationMembershipsUpdateRequestRole,
618
- request_options: typing.Optional[RequestOptions] = None,
619
- ) -> AsyncHttpResponse[OrganizationMembershipsUpdateResponse]:
620
- """
621
- Parameters
622
- ----------
623
- organization_id : str
624
-
625
- member_id : str
626
-
627
- role : OrganizationMembershipsUpdateRequestRole
628
-
629
- request_options : typing.Optional[RequestOptions]
630
- Request-specific configuration.
631
-
632
- Returns
633
- -------
634
- AsyncHttpResponse[OrganizationMembershipsUpdateResponse]
635
- Success
636
- """
637
- _response = await self._client_wrapper.httpx_client.request(
638
- f"organizations/{jsonable_encoder(organization_id)}/members/{jsonable_encoder(member_id)}",
639
- method="PATCH",
640
- json={
641
- "role": role,
642
- },
643
- headers={
644
- "content-type": "application/json",
645
- },
646
- request_options=request_options,
647
- omit=OMIT,
648
- )
649
- try:
650
- if 200 <= _response.status_code < 300:
651
- _data = typing.cast(
652
- OrganizationMembershipsUpdateResponse,
653
- parse_obj_as(
654
- type_=OrganizationMembershipsUpdateResponse, # type: ignore
655
- object_=_response.json(),
656
- ),
657
- )
658
- return AsyncHttpResponse(response=_response, data=_data)
659
- if _response.status_code == 400:
660
- raise BadRequestError(
661
- headers=dict(_response.headers),
662
- body=typing.cast(
663
- typing.Optional[typing.Any],
664
- parse_obj_as(
665
- type_=typing.Optional[typing.Any], # type: ignore
666
- object_=_response.json(),
667
- ),
668
- ),
669
- )
670
- if _response.status_code == 403:
671
- raise ForbiddenError(
672
- headers=dict(_response.headers),
673
- body=typing.cast(
674
- PermissionDeniedError,
675
- parse_obj_as(
676
- type_=PermissionDeniedError, # type: ignore
677
- object_=_response.json(),
678
- ),
679
- ),
680
- )
681
- if _response.status_code == 404:
682
- raise NotFoundError(
683
- headers=dict(_response.headers),
684
- body=typing.cast(
685
- NotFoundErrorBody,
686
- parse_obj_as(
687
- type_=NotFoundErrorBody, # type: ignore
688
- object_=_response.json(),
689
- ),
690
- ),
691
- )
692
- if _response.status_code == 429:
693
- raise TooManyRequestsError(
694
- headers=dict(_response.headers),
695
- body=typing.cast(
696
- RateLimitError,
697
- parse_obj_as(
698
- type_=RateLimitError, # type: ignore
699
- object_=_response.json(),
700
- ),
701
- ),
702
- )
703
- if _response.status_code == 500:
704
- raise InternalServerError(
705
- headers=dict(_response.headers),
706
- body=typing.cast(
707
- typing.Optional[typing.Any],
708
- parse_obj_as(
709
- type_=typing.Optional[typing.Any], # type: ignore
710
- object_=_response.json(),
711
- ),
712
- ),
713
- )
714
- if _response.status_code == 503:
715
- raise ServiceUnavailableError(
716
- headers=dict(_response.headers),
717
- body=typing.cast(
718
- typing.Optional[typing.Any],
719
- parse_obj_as(
720
- type_=typing.Optional[typing.Any], # type: ignore
721
- object_=_response.json(),
722
- ),
723
- ),
724
- )
725
- _response_json = _response.json()
726
- except JSONDecodeError:
727
- raise ApiError(
728
- status_code=_response.status_code,
729
- headers=dict(_response.headers),
730
- body=_response.text,
731
- )
732
- raise ApiError(
733
- status_code=_response.status_code,
734
- headers=dict(_response.headers),
735
- body=_response_json,
736
- )