mirascope 2.0.0__py3-none-any.whl → 2.0.0a0__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 (442) 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 +16 -101
  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/anthropic/__init__.py +11 -0
  15. mirascope/llm/{providers/openai/completions → clients/anthropic}/_utils/__init__.py +0 -2
  16. mirascope/llm/{providers → clients}/anthropic/_utils/decode.py +22 -66
  17. mirascope/llm/clients/anthropic/_utils/encode.py +243 -0
  18. mirascope/llm/clients/anthropic/clients.py +819 -0
  19. mirascope/llm/clients/anthropic/model_ids.py +8 -0
  20. mirascope/llm/{providers → clients}/base/__init__.py +5 -4
  21. mirascope/llm/{providers → clients}/base/_utils.py +17 -78
  22. mirascope/llm/{providers/base/base_provider.py → clients/base/client.py} +145 -468
  23. mirascope/llm/{models → clients/base}/params.py +37 -16
  24. mirascope/llm/clients/google/__init__.py +6 -0
  25. mirascope/llm/{providers/openai/responses → clients/google}/_utils/__init__.py +0 -2
  26. mirascope/llm/{providers → clients}/google/_utils/decode.py +22 -98
  27. mirascope/llm/{providers → clients}/google/_utils/encode.py +46 -168
  28. mirascope/llm/clients/google/clients.py +853 -0
  29. mirascope/llm/clients/google/model_ids.py +15 -0
  30. mirascope/llm/clients/openai/__init__.py +25 -0
  31. mirascope/llm/clients/openai/completions/__init__.py +9 -0
  32. mirascope/llm/{providers/google → clients/openai/completions}/_utils/__init__.py +0 -4
  33. mirascope/llm/{providers → clients}/openai/completions/_utils/decode.py +9 -74
  34. mirascope/llm/{providers → clients}/openai/completions/_utils/encode.py +52 -70
  35. mirascope/llm/clients/openai/completions/_utils/model_features.py +81 -0
  36. mirascope/llm/clients/openai/completions/clients.py +833 -0
  37. mirascope/llm/clients/openai/completions/model_ids.py +8 -0
  38. mirascope/llm/clients/openai/responses/__init__.py +9 -0
  39. mirascope/llm/clients/openai/responses/_utils/__init__.py +13 -0
  40. mirascope/llm/{providers → clients}/openai/responses/_utils/decode.py +14 -80
  41. mirascope/llm/{providers → clients}/openai/responses/_utils/encode.py +41 -92
  42. mirascope/llm/clients/openai/responses/_utils/model_features.py +87 -0
  43. mirascope/llm/clients/openai/responses/clients.py +832 -0
  44. mirascope/llm/clients/openai/responses/model_ids.py +8 -0
  45. mirascope/llm/clients/openai/shared/__init__.py +7 -0
  46. mirascope/llm/clients/openai/shared/_utils.py +55 -0
  47. mirascope/llm/clients/providers.py +175 -0
  48. mirascope/llm/content/__init__.py +2 -3
  49. mirascope/llm/content/tool_call.py +0 -6
  50. mirascope/llm/content/tool_output.py +5 -22
  51. mirascope/llm/context/_utils.py +6 -19
  52. mirascope/llm/exceptions.py +43 -298
  53. mirascope/llm/formatting/__init__.py +2 -19
  54. mirascope/llm/formatting/_utils.py +74 -0
  55. mirascope/llm/formatting/format.py +30 -219
  56. mirascope/llm/formatting/from_call_args.py +2 -2
  57. mirascope/llm/formatting/partial.py +7 -80
  58. mirascope/llm/formatting/types.py +64 -21
  59. mirascope/llm/mcp/__init__.py +2 -2
  60. mirascope/llm/mcp/client.py +118 -0
  61. mirascope/llm/messages/__init__.py +0 -3
  62. mirascope/llm/messages/message.py +5 -13
  63. mirascope/llm/models/__init__.py +2 -7
  64. mirascope/llm/models/models.py +139 -315
  65. mirascope/llm/prompts/__init__.py +12 -13
  66. mirascope/llm/prompts/_utils.py +43 -14
  67. mirascope/llm/prompts/decorator.py +204 -144
  68. mirascope/llm/prompts/protocols.py +59 -25
  69. mirascope/llm/responses/__init__.py +1 -9
  70. mirascope/llm/responses/_utils.py +12 -102
  71. mirascope/llm/responses/base_response.py +6 -18
  72. mirascope/llm/responses/base_stream_response.py +50 -173
  73. mirascope/llm/responses/finish_reason.py +0 -1
  74. mirascope/llm/responses/response.py +13 -34
  75. mirascope/llm/responses/root_response.py +29 -100
  76. mirascope/llm/responses/stream_response.py +31 -40
  77. mirascope/llm/tools/__init__.py +2 -9
  78. mirascope/llm/tools/_utils.py +3 -12
  79. mirascope/llm/tools/decorator.py +16 -25
  80. mirascope/llm/tools/protocols.py +4 -4
  81. mirascope/llm/tools/tool_schema.py +19 -87
  82. mirascope/llm/tools/toolkit.py +27 -35
  83. mirascope/llm/tools/tools.py +41 -135
  84. {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/METADATA +9 -95
  85. mirascope-2.0.0a0.dist-info/RECORD +101 -0
  86. {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/WHEEL +1 -1
  87. {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/licenses/LICENSE +1 -1
  88. mirascope/_stubs.py +0 -363
  89. mirascope/api/__init__.py +0 -14
  90. mirascope/api/_generated/README.md +0 -207
  91. mirascope/api/_generated/__init__.py +0 -440
  92. mirascope/api/_generated/annotations/__init__.py +0 -33
  93. mirascope/api/_generated/annotations/client.py +0 -506
  94. mirascope/api/_generated/annotations/raw_client.py +0 -1414
  95. mirascope/api/_generated/annotations/types/__init__.py +0 -31
  96. mirascope/api/_generated/annotations/types/annotations_create_request_label.py +0 -5
  97. mirascope/api/_generated/annotations/types/annotations_create_response.py +0 -48
  98. mirascope/api/_generated/annotations/types/annotations_create_response_label.py +0 -5
  99. mirascope/api/_generated/annotations/types/annotations_get_response.py +0 -48
  100. mirascope/api/_generated/annotations/types/annotations_get_response_label.py +0 -5
  101. mirascope/api/_generated/annotations/types/annotations_list_request_label.py +0 -5
  102. mirascope/api/_generated/annotations/types/annotations_list_response.py +0 -21
  103. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +0 -50
  104. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item_label.py +0 -5
  105. mirascope/api/_generated/annotations/types/annotations_update_request_label.py +0 -5
  106. mirascope/api/_generated/annotations/types/annotations_update_response.py +0 -48
  107. mirascope/api/_generated/annotations/types/annotations_update_response_label.py +0 -5
  108. mirascope/api/_generated/api_keys/__init__.py +0 -17
  109. mirascope/api/_generated/api_keys/client.py +0 -530
  110. mirascope/api/_generated/api_keys/raw_client.py +0 -1236
  111. mirascope/api/_generated/api_keys/types/__init__.py +0 -15
  112. mirascope/api/_generated/api_keys/types/api_keys_create_response.py +0 -28
  113. mirascope/api/_generated/api_keys/types/api_keys_get_response.py +0 -27
  114. mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +0 -40
  115. mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py +0 -27
  116. mirascope/api/_generated/client.py +0 -211
  117. mirascope/api/_generated/core/__init__.py +0 -52
  118. mirascope/api/_generated/core/api_error.py +0 -23
  119. mirascope/api/_generated/core/client_wrapper.py +0 -46
  120. mirascope/api/_generated/core/datetime_utils.py +0 -28
  121. mirascope/api/_generated/core/file.py +0 -67
  122. mirascope/api/_generated/core/force_multipart.py +0 -16
  123. mirascope/api/_generated/core/http_client.py +0 -543
  124. mirascope/api/_generated/core/http_response.py +0 -55
  125. mirascope/api/_generated/core/jsonable_encoder.py +0 -100
  126. mirascope/api/_generated/core/pydantic_utilities.py +0 -255
  127. mirascope/api/_generated/core/query_encoder.py +0 -58
  128. mirascope/api/_generated/core/remove_none_from_dict.py +0 -11
  129. mirascope/api/_generated/core/request_options.py +0 -35
  130. mirascope/api/_generated/core/serialization.py +0 -276
  131. mirascope/api/_generated/docs/__init__.py +0 -4
  132. mirascope/api/_generated/docs/client.py +0 -91
  133. mirascope/api/_generated/docs/raw_client.py +0 -178
  134. mirascope/api/_generated/environment.py +0 -9
  135. mirascope/api/_generated/environments/__init__.py +0 -23
  136. mirascope/api/_generated/environments/client.py +0 -649
  137. mirascope/api/_generated/environments/raw_client.py +0 -1567
  138. mirascope/api/_generated/environments/types/__init__.py +0 -25
  139. mirascope/api/_generated/environments/types/environments_create_response.py +0 -24
  140. mirascope/api/_generated/environments/types/environments_get_analytics_response.py +0 -60
  141. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +0 -24
  142. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_models_item.py +0 -22
  143. mirascope/api/_generated/environments/types/environments_get_response.py +0 -24
  144. mirascope/api/_generated/environments/types/environments_list_response_item.py +0 -24
  145. mirascope/api/_generated/environments/types/environments_update_response.py +0 -24
  146. mirascope/api/_generated/errors/__init__.py +0 -25
  147. mirascope/api/_generated/errors/bad_request_error.py +0 -14
  148. mirascope/api/_generated/errors/conflict_error.py +0 -14
  149. mirascope/api/_generated/errors/forbidden_error.py +0 -11
  150. mirascope/api/_generated/errors/internal_server_error.py +0 -10
  151. mirascope/api/_generated/errors/not_found_error.py +0 -11
  152. mirascope/api/_generated/errors/payment_required_error.py +0 -15
  153. mirascope/api/_generated/errors/service_unavailable_error.py +0 -14
  154. mirascope/api/_generated/errors/too_many_requests_error.py +0 -15
  155. mirascope/api/_generated/errors/unauthorized_error.py +0 -11
  156. mirascope/api/_generated/functions/__init__.py +0 -39
  157. mirascope/api/_generated/functions/client.py +0 -647
  158. mirascope/api/_generated/functions/raw_client.py +0 -1890
  159. mirascope/api/_generated/functions/types/__init__.py +0 -53
  160. mirascope/api/_generated/functions/types/functions_create_request_dependencies_value.py +0 -20
  161. mirascope/api/_generated/functions/types/functions_create_response.py +0 -37
  162. mirascope/api/_generated/functions/types/functions_create_response_dependencies_value.py +0 -20
  163. mirascope/api/_generated/functions/types/functions_find_by_hash_response.py +0 -39
  164. mirascope/api/_generated/functions/types/functions_find_by_hash_response_dependencies_value.py +0 -20
  165. mirascope/api/_generated/functions/types/functions_get_by_env_response.py +0 -53
  166. mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +0 -22
  167. mirascope/api/_generated/functions/types/functions_get_response.py +0 -37
  168. mirascope/api/_generated/functions/types/functions_get_response_dependencies_value.py +0 -20
  169. mirascope/api/_generated/functions/types/functions_list_by_env_response.py +0 -25
  170. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +0 -56
  171. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +0 -22
  172. mirascope/api/_generated/functions/types/functions_list_response.py +0 -21
  173. mirascope/api/_generated/functions/types/functions_list_response_functions_item.py +0 -41
  174. mirascope/api/_generated/functions/types/functions_list_response_functions_item_dependencies_value.py +0 -20
  175. mirascope/api/_generated/health/__init__.py +0 -7
  176. mirascope/api/_generated/health/client.py +0 -92
  177. mirascope/api/_generated/health/raw_client.py +0 -175
  178. mirascope/api/_generated/health/types/__init__.py +0 -8
  179. mirascope/api/_generated/health/types/health_check_response.py +0 -22
  180. mirascope/api/_generated/health/types/health_check_response_status.py +0 -5
  181. mirascope/api/_generated/organization_invitations/__init__.py +0 -33
  182. mirascope/api/_generated/organization_invitations/client.py +0 -546
  183. mirascope/api/_generated/organization_invitations/raw_client.py +0 -1519
  184. mirascope/api/_generated/organization_invitations/types/__init__.py +0 -53
  185. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +0 -34
  186. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +0 -7
  187. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +0 -7
  188. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +0 -48
  189. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +0 -7
  190. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +0 -7
  191. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +0 -48
  192. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +0 -7
  193. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +0 -7
  194. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +0 -48
  195. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +0 -7
  196. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +0 -7
  197. mirascope/api/_generated/organization_memberships/__init__.py +0 -19
  198. mirascope/api/_generated/organization_memberships/client.py +0 -302
  199. mirascope/api/_generated/organization_memberships/raw_client.py +0 -736
  200. mirascope/api/_generated/organization_memberships/types/__init__.py +0 -27
  201. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +0 -33
  202. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +0 -7
  203. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +0 -7
  204. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +0 -31
  205. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +0 -7
  206. mirascope/api/_generated/organizations/__init__.py +0 -51
  207. mirascope/api/_generated/organizations/client.py +0 -869
  208. mirascope/api/_generated/organizations/raw_client.py +0 -2593
  209. mirascope/api/_generated/organizations/types/__init__.py +0 -71
  210. mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +0 -24
  211. mirascope/api/_generated/organizations/types/organizations_create_response.py +0 -26
  212. mirascope/api/_generated/organizations/types/organizations_create_response_role.py +0 -5
  213. mirascope/api/_generated/organizations/types/organizations_get_response.py +0 -26
  214. mirascope/api/_generated/organizations/types/organizations_get_response_role.py +0 -5
  215. mirascope/api/_generated/organizations/types/organizations_list_response_item.py +0 -26
  216. mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +0 -5
  217. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +0 -7
  218. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +0 -47
  219. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +0 -33
  220. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +0 -7
  221. mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +0 -24
  222. mirascope/api/_generated/organizations/types/organizations_subscription_response.py +0 -53
  223. mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +0 -7
  224. mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +0 -26
  225. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +0 -34
  226. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +0 -7
  227. mirascope/api/_generated/organizations/types/organizations_update_response.py +0 -26
  228. mirascope/api/_generated/organizations/types/organizations_update_response_role.py +0 -5
  229. mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +0 -7
  230. mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +0 -35
  231. mirascope/api/_generated/project_memberships/__init__.py +0 -25
  232. mirascope/api/_generated/project_memberships/client.py +0 -437
  233. mirascope/api/_generated/project_memberships/raw_client.py +0 -1039
  234. mirascope/api/_generated/project_memberships/types/__init__.py +0 -29
  235. mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +0 -7
  236. mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +0 -35
  237. mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +0 -7
  238. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +0 -33
  239. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +0 -7
  240. mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +0 -7
  241. mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +0 -35
  242. mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +0 -7
  243. mirascope/api/_generated/projects/__init__.py +0 -7
  244. mirascope/api/_generated/projects/client.py +0 -428
  245. mirascope/api/_generated/projects/raw_client.py +0 -1302
  246. mirascope/api/_generated/projects/types/__init__.py +0 -10
  247. mirascope/api/_generated/projects/types/projects_create_response.py +0 -25
  248. mirascope/api/_generated/projects/types/projects_get_response.py +0 -25
  249. mirascope/api/_generated/projects/types/projects_list_response_item.py +0 -25
  250. mirascope/api/_generated/projects/types/projects_update_response.py +0 -25
  251. mirascope/api/_generated/reference.md +0 -4915
  252. mirascope/api/_generated/tags/__init__.py +0 -19
  253. mirascope/api/_generated/tags/client.py +0 -504
  254. mirascope/api/_generated/tags/raw_client.py +0 -1288
  255. mirascope/api/_generated/tags/types/__init__.py +0 -17
  256. mirascope/api/_generated/tags/types/tags_create_response.py +0 -41
  257. mirascope/api/_generated/tags/types/tags_get_response.py +0 -41
  258. mirascope/api/_generated/tags/types/tags_list_response.py +0 -23
  259. mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +0 -41
  260. mirascope/api/_generated/tags/types/tags_update_response.py +0 -41
  261. mirascope/api/_generated/token_cost/__init__.py +0 -7
  262. mirascope/api/_generated/token_cost/client.py +0 -160
  263. mirascope/api/_generated/token_cost/raw_client.py +0 -264
  264. mirascope/api/_generated/token_cost/types/__init__.py +0 -8
  265. mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +0 -54
  266. mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +0 -52
  267. mirascope/api/_generated/traces/__init__.py +0 -97
  268. mirascope/api/_generated/traces/client.py +0 -1103
  269. mirascope/api/_generated/traces/raw_client.py +0 -2322
  270. mirascope/api/_generated/traces/types/__init__.py +0 -155
  271. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item.py +0 -29
  272. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource.py +0 -27
  273. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item.py +0 -23
  274. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value.py +0 -38
  275. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_array_value.py +0 -19
  276. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value.py +0 -22
  277. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item.py +0 -20
  278. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item.py +0 -29
  279. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope.py +0 -31
  280. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item.py +0 -23
  281. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value.py +0 -38
  282. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value.py +0 -19
  283. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value.py +0 -22
  284. 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
  285. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item.py +0 -48
  286. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item.py +0 -23
  287. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value.py +0 -38
  288. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value.py +0 -19
  289. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value.py +0 -24
  290. 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
  291. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py +0 -20
  292. mirascope/api/_generated/traces/types/traces_create_response.py +0 -24
  293. mirascope/api/_generated/traces/types/traces_create_response_partial_success.py +0 -22
  294. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +0 -60
  295. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_functions_item.py +0 -24
  296. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_models_item.py +0 -22
  297. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +0 -33
  298. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +0 -88
  299. mirascope/api/_generated/traces/types/traces_get_trace_detail_response.py +0 -33
  300. mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +0 -88
  301. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +0 -25
  302. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +0 -44
  303. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +0 -26
  304. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +0 -7
  305. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +0 -7
  306. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +0 -7
  307. mirascope/api/_generated/traces/types/traces_search_by_env_response.py +0 -26
  308. mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +0 -50
  309. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item.py +0 -26
  310. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item_operator.py +0 -7
  311. mirascope/api/_generated/traces/types/traces_search_request_sort_by.py +0 -7
  312. mirascope/api/_generated/traces/types/traces_search_request_sort_order.py +0 -5
  313. mirascope/api/_generated/traces/types/traces_search_response.py +0 -26
  314. mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +0 -50
  315. mirascope/api/_generated/types/__init__.py +0 -85
  316. mirascope/api/_generated/types/already_exists_error.py +0 -22
  317. mirascope/api/_generated/types/already_exists_error_tag.py +0 -5
  318. mirascope/api/_generated/types/bad_request_error_body.py +0 -50
  319. mirascope/api/_generated/types/click_house_error.py +0 -22
  320. mirascope/api/_generated/types/database_error.py +0 -22
  321. mirascope/api/_generated/types/database_error_tag.py +0 -5
  322. mirascope/api/_generated/types/date.py +0 -3
  323. mirascope/api/_generated/types/http_api_decode_error.py +0 -27
  324. mirascope/api/_generated/types/http_api_decode_error_tag.py +0 -5
  325. mirascope/api/_generated/types/immutable_resource_error.py +0 -22
  326. mirascope/api/_generated/types/internal_server_error_body.py +0 -49
  327. mirascope/api/_generated/types/issue.py +0 -38
  328. mirascope/api/_generated/types/issue_tag.py +0 -10
  329. mirascope/api/_generated/types/not_found_error_body.py +0 -22
  330. mirascope/api/_generated/types/not_found_error_tag.py +0 -5
  331. mirascope/api/_generated/types/number_from_string.py +0 -3
  332. mirascope/api/_generated/types/permission_denied_error.py +0 -22
  333. mirascope/api/_generated/types/permission_denied_error_tag.py +0 -5
  334. mirascope/api/_generated/types/plan_limit_exceeded_error.py +0 -32
  335. mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +0 -7
  336. mirascope/api/_generated/types/pricing_unavailable_error.py +0 -23
  337. mirascope/api/_generated/types/property_key.py +0 -7
  338. mirascope/api/_generated/types/property_key_key.py +0 -25
  339. mirascope/api/_generated/types/property_key_key_tag.py +0 -5
  340. mirascope/api/_generated/types/rate_limit_error.py +0 -31
  341. mirascope/api/_generated/types/rate_limit_error_tag.py +0 -5
  342. mirascope/api/_generated/types/service_unavailable_error_body.py +0 -24
  343. mirascope/api/_generated/types/service_unavailable_error_tag.py +0 -7
  344. mirascope/api/_generated/types/stripe_error.py +0 -20
  345. mirascope/api/_generated/types/subscription_past_due_error.py +0 -31
  346. mirascope/api/_generated/types/subscription_past_due_error_tag.py +0 -7
  347. mirascope/api/_generated/types/unauthorized_error_body.py +0 -21
  348. mirascope/api/_generated/types/unauthorized_error_tag.py +0 -5
  349. mirascope/api/client.py +0 -255
  350. mirascope/api/settings.py +0 -99
  351. mirascope/llm/formatting/output_parser.py +0 -178
  352. mirascope/llm/formatting/primitives.py +0 -192
  353. mirascope/llm/mcp/mcp_client.py +0 -130
  354. mirascope/llm/messages/_utils.py +0 -34
  355. mirascope/llm/models/thinking_config.py +0 -61
  356. mirascope/llm/prompts/prompts.py +0 -487
  357. mirascope/llm/providers/__init__.py +0 -62
  358. mirascope/llm/providers/anthropic/__init__.py +0 -11
  359. mirascope/llm/providers/anthropic/_utils/__init__.py +0 -27
  360. mirascope/llm/providers/anthropic/_utils/beta_decode.py +0 -282
  361. mirascope/llm/providers/anthropic/_utils/beta_encode.py +0 -266
  362. mirascope/llm/providers/anthropic/_utils/encode.py +0 -418
  363. mirascope/llm/providers/anthropic/_utils/errors.py +0 -46
  364. mirascope/llm/providers/anthropic/beta_provider.py +0 -374
  365. mirascope/llm/providers/anthropic/model_id.py +0 -23
  366. mirascope/llm/providers/anthropic/model_info.py +0 -87
  367. mirascope/llm/providers/anthropic/provider.py +0 -479
  368. mirascope/llm/providers/google/__init__.py +0 -6
  369. mirascope/llm/providers/google/_utils/errors.py +0 -50
  370. mirascope/llm/providers/google/model_id.py +0 -22
  371. mirascope/llm/providers/google/model_info.py +0 -63
  372. mirascope/llm/providers/google/provider.py +0 -492
  373. mirascope/llm/providers/mirascope/__init__.py +0 -5
  374. mirascope/llm/providers/mirascope/_utils.py +0 -73
  375. mirascope/llm/providers/mirascope/provider.py +0 -349
  376. mirascope/llm/providers/mlx/__init__.py +0 -9
  377. mirascope/llm/providers/mlx/_utils.py +0 -141
  378. mirascope/llm/providers/mlx/encoding/__init__.py +0 -8
  379. mirascope/llm/providers/mlx/encoding/base.py +0 -72
  380. mirascope/llm/providers/mlx/encoding/transformers.py +0 -150
  381. mirascope/llm/providers/mlx/mlx.py +0 -254
  382. mirascope/llm/providers/mlx/model_id.py +0 -17
  383. mirascope/llm/providers/mlx/provider.py +0 -452
  384. mirascope/llm/providers/model_id.py +0 -16
  385. mirascope/llm/providers/ollama/__init__.py +0 -7
  386. mirascope/llm/providers/ollama/provider.py +0 -71
  387. mirascope/llm/providers/openai/__init__.py +0 -15
  388. mirascope/llm/providers/openai/_utils/__init__.py +0 -5
  389. mirascope/llm/providers/openai/_utils/errors.py +0 -46
  390. mirascope/llm/providers/openai/completions/__init__.py +0 -7
  391. mirascope/llm/providers/openai/completions/base_provider.py +0 -542
  392. mirascope/llm/providers/openai/completions/provider.py +0 -22
  393. mirascope/llm/providers/openai/model_id.py +0 -31
  394. mirascope/llm/providers/openai/model_info.py +0 -303
  395. mirascope/llm/providers/openai/provider.py +0 -441
  396. mirascope/llm/providers/openai/responses/__init__.py +0 -5
  397. mirascope/llm/providers/openai/responses/provider.py +0 -513
  398. mirascope/llm/providers/provider_id.py +0 -24
  399. mirascope/llm/providers/provider_registry.py +0 -299
  400. mirascope/llm/providers/together/__init__.py +0 -7
  401. mirascope/llm/providers/together/provider.py +0 -40
  402. mirascope/llm/responses/usage.py +0 -95
  403. mirascope/ops/__init__.py +0 -111
  404. mirascope/ops/_internal/__init__.py +0 -5
  405. mirascope/ops/_internal/closure.py +0 -1169
  406. mirascope/ops/_internal/configuration.py +0 -177
  407. mirascope/ops/_internal/context.py +0 -76
  408. mirascope/ops/_internal/exporters/__init__.py +0 -26
  409. mirascope/ops/_internal/exporters/exporters.py +0 -395
  410. mirascope/ops/_internal/exporters/processors.py +0 -104
  411. mirascope/ops/_internal/exporters/types.py +0 -165
  412. mirascope/ops/_internal/exporters/utils.py +0 -29
  413. mirascope/ops/_internal/instrumentation/__init__.py +0 -8
  414. mirascope/ops/_internal/instrumentation/llm/__init__.py +0 -8
  415. mirascope/ops/_internal/instrumentation/llm/common.py +0 -530
  416. mirascope/ops/_internal/instrumentation/llm/cost.py +0 -190
  417. mirascope/ops/_internal/instrumentation/llm/encode.py +0 -238
  418. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/__init__.py +0 -38
  419. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.py +0 -31
  420. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py +0 -38
  421. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py +0 -18
  422. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py +0 -100
  423. mirascope/ops/_internal/instrumentation/llm/llm.py +0 -161
  424. mirascope/ops/_internal/instrumentation/llm/model.py +0 -1798
  425. mirascope/ops/_internal/instrumentation/llm/response.py +0 -521
  426. mirascope/ops/_internal/instrumentation/llm/serialize.py +0 -300
  427. mirascope/ops/_internal/propagation.py +0 -198
  428. mirascope/ops/_internal/protocols.py +0 -133
  429. mirascope/ops/_internal/session.py +0 -139
  430. mirascope/ops/_internal/spans.py +0 -232
  431. mirascope/ops/_internal/traced_calls.py +0 -375
  432. mirascope/ops/_internal/traced_functions.py +0 -523
  433. mirascope/ops/_internal/tracing.py +0 -353
  434. mirascope/ops/_internal/types.py +0 -13
  435. mirascope/ops/_internal/utils.py +0 -123
  436. mirascope/ops/_internal/versioned_calls.py +0 -512
  437. mirascope/ops/_internal/versioned_functions.py +0 -357
  438. mirascope/ops/_internal/versioning.py +0 -303
  439. mirascope/ops/exceptions.py +0 -21
  440. mirascope-2.0.0.dist-info/RECORD +0 -423
  441. /mirascope/llm/{providers → clients}/base/kwargs.py +0 -0
  442. /mirascope/llm/{providers → clients}/google/message.py +0 -0
@@ -1,17 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- # isort: skip_file
4
-
5
- from .tags_create_response import TagsCreateResponse
6
- from .tags_get_response import TagsGetResponse
7
- from .tags_list_response import TagsListResponse
8
- from .tags_list_response_tags_item import TagsListResponseTagsItem
9
- from .tags_update_response import TagsUpdateResponse
10
-
11
- __all__ = [
12
- "TagsCreateResponse",
13
- "TagsGetResponse",
14
- "TagsListResponse",
15
- "TagsListResponseTagsItem",
16
- "TagsUpdateResponse",
17
- ]
@@ -1,41 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- import typing_extensions
7
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
- from ...core.serialization import FieldMetadata
9
-
10
-
11
- class TagsCreateResponse(UniversalBaseModel):
12
- id: str
13
- name: str = pydantic.Field()
14
- """
15
- a string at most 100 character(s) long
16
- """
17
-
18
- project_id: typing_extensions.Annotated[str, FieldMetadata(alias="projectId")]
19
- organization_id: typing_extensions.Annotated[
20
- str, FieldMetadata(alias="organizationId")
21
- ]
22
- created_by: typing_extensions.Annotated[
23
- typing.Optional[str], FieldMetadata(alias="createdBy")
24
- ] = None
25
- created_at: typing_extensions.Annotated[
26
- typing.Optional[str], FieldMetadata(alias="createdAt")
27
- ] = None
28
- updated_at: typing_extensions.Annotated[
29
- typing.Optional[str], FieldMetadata(alias="updatedAt")
30
- ] = None
31
-
32
- if IS_PYDANTIC_V2:
33
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
34
- extra="allow", frozen=True
35
- ) # type: ignore # Pydantic v2
36
- else:
37
-
38
- class Config:
39
- frozen = True
40
- smart_union = True
41
- extra = pydantic.Extra.allow
@@ -1,41 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- import typing_extensions
7
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
- from ...core.serialization import FieldMetadata
9
-
10
-
11
- class TagsGetResponse(UniversalBaseModel):
12
- id: str
13
- name: str = pydantic.Field()
14
- """
15
- a string at most 100 character(s) long
16
- """
17
-
18
- project_id: typing_extensions.Annotated[str, FieldMetadata(alias="projectId")]
19
- organization_id: typing_extensions.Annotated[
20
- str, FieldMetadata(alias="organizationId")
21
- ]
22
- created_by: typing_extensions.Annotated[
23
- typing.Optional[str], FieldMetadata(alias="createdBy")
24
- ] = None
25
- created_at: typing_extensions.Annotated[
26
- typing.Optional[str], FieldMetadata(alias="createdAt")
27
- ] = None
28
- updated_at: typing_extensions.Annotated[
29
- typing.Optional[str], FieldMetadata(alias="updatedAt")
30
- ] = None
31
-
32
- if IS_PYDANTIC_V2:
33
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
34
- extra="allow", frozen=True
35
- ) # type: ignore # Pydantic v2
36
- else:
37
-
38
- class Config:
39
- frozen = True
40
- smart_union = True
41
- extra = pydantic.Extra.allow
@@ -1,23 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
- from .tags_list_response_tags_item import TagsListResponseTagsItem
8
-
9
-
10
- class TagsListResponse(UniversalBaseModel):
11
- tags: typing.List[TagsListResponseTagsItem]
12
- total: float
13
-
14
- if IS_PYDANTIC_V2:
15
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
- extra="allow", frozen=True
17
- ) # type: ignore # Pydantic v2
18
- else:
19
-
20
- class Config:
21
- frozen = True
22
- smart_union = True
23
- extra = pydantic.Extra.allow
@@ -1,41 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- import typing_extensions
7
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
- from ...core.serialization import FieldMetadata
9
-
10
-
11
- class TagsListResponseTagsItem(UniversalBaseModel):
12
- id: str
13
- name: str = pydantic.Field()
14
- """
15
- a string at most 100 character(s) long
16
- """
17
-
18
- project_id: typing_extensions.Annotated[str, FieldMetadata(alias="projectId")]
19
- organization_id: typing_extensions.Annotated[
20
- str, FieldMetadata(alias="organizationId")
21
- ]
22
- created_by: typing_extensions.Annotated[
23
- typing.Optional[str], FieldMetadata(alias="createdBy")
24
- ] = None
25
- created_at: typing_extensions.Annotated[
26
- typing.Optional[str], FieldMetadata(alias="createdAt")
27
- ] = None
28
- updated_at: typing_extensions.Annotated[
29
- typing.Optional[str], FieldMetadata(alias="updatedAt")
30
- ] = None
31
-
32
- if IS_PYDANTIC_V2:
33
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
34
- extra="allow", frozen=True
35
- ) # type: ignore # Pydantic v2
36
- else:
37
-
38
- class Config:
39
- frozen = True
40
- smart_union = True
41
- extra = pydantic.Extra.allow
@@ -1,41 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- import typing_extensions
7
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
- from ...core.serialization import FieldMetadata
9
-
10
-
11
- class TagsUpdateResponse(UniversalBaseModel):
12
- id: str
13
- name: str = pydantic.Field()
14
- """
15
- a string at most 100 character(s) long
16
- """
17
-
18
- project_id: typing_extensions.Annotated[str, FieldMetadata(alias="projectId")]
19
- organization_id: typing_extensions.Annotated[
20
- str, FieldMetadata(alias="organizationId")
21
- ]
22
- created_by: typing_extensions.Annotated[
23
- typing.Optional[str], FieldMetadata(alias="createdBy")
24
- ] = None
25
- created_at: typing_extensions.Annotated[
26
- typing.Optional[str], FieldMetadata(alias="createdAt")
27
- ] = None
28
- updated_at: typing_extensions.Annotated[
29
- typing.Optional[str], FieldMetadata(alias="updatedAt")
30
- ] = None
31
-
32
- if IS_PYDANTIC_V2:
33
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
34
- extra="allow", frozen=True
35
- ) # type: ignore # Pydantic v2
36
- else:
37
-
38
- class Config:
39
- frozen = True
40
- smart_union = True
41
- extra = pydantic.Extra.allow
@@ -1,7 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- # isort: skip_file
4
-
5
- from .types import TokenCostCalculateRequestUsage, TokenCostCalculateResponse
6
-
7
- __all__ = ["TokenCostCalculateRequestUsage", "TokenCostCalculateResponse"]
@@ -1,160 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
- from ..core.request_options import RequestOptions
7
- from .raw_client import AsyncRawTokenCostClient, RawTokenCostClient
8
- from .types.token_cost_calculate_request_usage import TokenCostCalculateRequestUsage
9
- from .types.token_cost_calculate_response import TokenCostCalculateResponse
10
-
11
- # this is used as the default value for optional parameters
12
- OMIT = typing.cast(typing.Any, ...)
13
-
14
-
15
- class TokenCostClient:
16
- def __init__(self, *, client_wrapper: SyncClientWrapper):
17
- self._raw_client = RawTokenCostClient(client_wrapper=client_wrapper)
18
-
19
- @property
20
- def with_raw_response(self) -> RawTokenCostClient:
21
- """
22
- Retrieves a raw implementation of this client that returns raw responses.
23
-
24
- Returns
25
- -------
26
- RawTokenCostClient
27
- """
28
- return self._raw_client
29
-
30
- def calculate(
31
- self,
32
- *,
33
- provider: str,
34
- model: str,
35
- usage: TokenCostCalculateRequestUsage,
36
- via_router: typing.Optional[bool] = OMIT,
37
- request_options: typing.Optional[RequestOptions] = None,
38
- ) -> TokenCostCalculateResponse:
39
- """
40
- Parameters
41
- ----------
42
- provider : str
43
- a non empty string
44
-
45
- model : str
46
- a non empty string
47
-
48
- usage : TokenCostCalculateRequestUsage
49
-
50
- via_router : typing.Optional[bool]
51
-
52
- request_options : typing.Optional[RequestOptions]
53
- Request-specific configuration.
54
-
55
- Returns
56
- -------
57
- TokenCostCalculateResponse
58
- Success
59
-
60
- Examples
61
- --------
62
- from mirascope.api._generated import Mirascope
63
- from mirascope.api._generated.token_cost import TokenCostCalculateRequestUsage
64
-
65
- client = Mirascope()
66
- client.token_cost.calculate(
67
- provider="provider",
68
- model="model",
69
- usage=TokenCostCalculateRequestUsage(
70
- input_tokens=1.1,
71
- output_tokens=1.1,
72
- ),
73
- )
74
- """
75
- _response = self._raw_client.calculate(
76
- provider=provider,
77
- model=model,
78
- usage=usage,
79
- via_router=via_router,
80
- request_options=request_options,
81
- )
82
- return _response.data
83
-
84
-
85
- class AsyncTokenCostClient:
86
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
87
- self._raw_client = AsyncRawTokenCostClient(client_wrapper=client_wrapper)
88
-
89
- @property
90
- def with_raw_response(self) -> AsyncRawTokenCostClient:
91
- """
92
- Retrieves a raw implementation of this client that returns raw responses.
93
-
94
- Returns
95
- -------
96
- AsyncRawTokenCostClient
97
- """
98
- return self._raw_client
99
-
100
- async def calculate(
101
- self,
102
- *,
103
- provider: str,
104
- model: str,
105
- usage: TokenCostCalculateRequestUsage,
106
- via_router: typing.Optional[bool] = OMIT,
107
- request_options: typing.Optional[RequestOptions] = None,
108
- ) -> TokenCostCalculateResponse:
109
- """
110
- Parameters
111
- ----------
112
- provider : str
113
- a non empty string
114
-
115
- model : str
116
- a non empty string
117
-
118
- usage : TokenCostCalculateRequestUsage
119
-
120
- via_router : typing.Optional[bool]
121
-
122
- request_options : typing.Optional[RequestOptions]
123
- Request-specific configuration.
124
-
125
- Returns
126
- -------
127
- TokenCostCalculateResponse
128
- Success
129
-
130
- Examples
131
- --------
132
- import asyncio
133
-
134
- from mirascope.api._generated import AsyncMirascope
135
- from mirascope.api._generated.token_cost import TokenCostCalculateRequestUsage
136
-
137
- client = AsyncMirascope()
138
-
139
-
140
- async def main() -> None:
141
- await client.token_cost.calculate(
142
- provider="provider",
143
- model="model",
144
- usage=TokenCostCalculateRequestUsage(
145
- input_tokens=1.1,
146
- output_tokens=1.1,
147
- ),
148
- )
149
-
150
-
151
- asyncio.run(main())
152
- """
153
- _response = await self._raw_client.calculate(
154
- provider=provider,
155
- model=model,
156
- usage=usage,
157
- via_router=via_router,
158
- request_options=request_options,
159
- )
160
- return _response.data
@@ -1,264 +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.pydantic_utilities import parse_obj_as
10
- from ..core.request_options import RequestOptions
11
- from ..core.serialization import convert_and_respect_annotation_metadata
12
- from ..errors.bad_request_error import BadRequestError
13
- from ..errors.service_unavailable_error import ServiceUnavailableError
14
- from ..errors.too_many_requests_error import TooManyRequestsError
15
- from ..errors.unauthorized_error import UnauthorizedError
16
- from ..types.rate_limit_error import RateLimitError
17
- from ..types.unauthorized_error_body import UnauthorizedErrorBody
18
- from .types.token_cost_calculate_request_usage import TokenCostCalculateRequestUsage
19
- from .types.token_cost_calculate_response import TokenCostCalculateResponse
20
-
21
- # this is used as the default value for optional parameters
22
- OMIT = typing.cast(typing.Any, ...)
23
-
24
-
25
- class RawTokenCostClient:
26
- def __init__(self, *, client_wrapper: SyncClientWrapper):
27
- self._client_wrapper = client_wrapper
28
-
29
- def calculate(
30
- self,
31
- *,
32
- provider: str,
33
- model: str,
34
- usage: TokenCostCalculateRequestUsage,
35
- via_router: typing.Optional[bool] = OMIT,
36
- request_options: typing.Optional[RequestOptions] = None,
37
- ) -> HttpResponse[TokenCostCalculateResponse]:
38
- """
39
- Parameters
40
- ----------
41
- provider : str
42
- a non empty string
43
-
44
- model : str
45
- a non empty string
46
-
47
- usage : TokenCostCalculateRequestUsage
48
-
49
- via_router : typing.Optional[bool]
50
-
51
- request_options : typing.Optional[RequestOptions]
52
- Request-specific configuration.
53
-
54
- Returns
55
- -------
56
- HttpResponse[TokenCostCalculateResponse]
57
- Success
58
- """
59
- _response = self._client_wrapper.httpx_client.request(
60
- "token-cost",
61
- method="POST",
62
- json={
63
- "provider": provider,
64
- "model": model,
65
- "usage": convert_and_respect_annotation_metadata(
66
- object_=usage,
67
- annotation=TokenCostCalculateRequestUsage,
68
- direction="write",
69
- ),
70
- "viaRouter": via_router,
71
- },
72
- headers={
73
- "content-type": "application/json",
74
- },
75
- request_options=request_options,
76
- omit=OMIT,
77
- )
78
- try:
79
- if 200 <= _response.status_code < 300:
80
- _data = typing.cast(
81
- TokenCostCalculateResponse,
82
- parse_obj_as(
83
- type_=TokenCostCalculateResponse, # type: ignore
84
- object_=_response.json(),
85
- ),
86
- )
87
- return HttpResponse(response=_response, data=_data)
88
- if _response.status_code == 400:
89
- raise BadRequestError(
90
- headers=dict(_response.headers),
91
- body=typing.cast(
92
- typing.Optional[typing.Any],
93
- parse_obj_as(
94
- type_=typing.Optional[typing.Any], # type: ignore
95
- object_=_response.json(),
96
- ),
97
- ),
98
- )
99
- if _response.status_code == 401:
100
- raise UnauthorizedError(
101
- headers=dict(_response.headers),
102
- body=typing.cast(
103
- UnauthorizedErrorBody,
104
- parse_obj_as(
105
- type_=UnauthorizedErrorBody, # type: ignore
106
- object_=_response.json(),
107
- ),
108
- ),
109
- )
110
- if _response.status_code == 429:
111
- raise TooManyRequestsError(
112
- headers=dict(_response.headers),
113
- body=typing.cast(
114
- RateLimitError,
115
- parse_obj_as(
116
- type_=RateLimitError, # type: ignore
117
- object_=_response.json(),
118
- ),
119
- ),
120
- )
121
- if _response.status_code == 503:
122
- raise ServiceUnavailableError(
123
- headers=dict(_response.headers),
124
- body=typing.cast(
125
- typing.Optional[typing.Any],
126
- parse_obj_as(
127
- type_=typing.Optional[typing.Any], # type: ignore
128
- object_=_response.json(),
129
- ),
130
- ),
131
- )
132
- _response_json = _response.json()
133
- except JSONDecodeError:
134
- raise ApiError(
135
- status_code=_response.status_code,
136
- headers=dict(_response.headers),
137
- body=_response.text,
138
- )
139
- raise ApiError(
140
- status_code=_response.status_code,
141
- headers=dict(_response.headers),
142
- body=_response_json,
143
- )
144
-
145
-
146
- class AsyncRawTokenCostClient:
147
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
148
- self._client_wrapper = client_wrapper
149
-
150
- async def calculate(
151
- self,
152
- *,
153
- provider: str,
154
- model: str,
155
- usage: TokenCostCalculateRequestUsage,
156
- via_router: typing.Optional[bool] = OMIT,
157
- request_options: typing.Optional[RequestOptions] = None,
158
- ) -> AsyncHttpResponse[TokenCostCalculateResponse]:
159
- """
160
- Parameters
161
- ----------
162
- provider : str
163
- a non empty string
164
-
165
- model : str
166
- a non empty string
167
-
168
- usage : TokenCostCalculateRequestUsage
169
-
170
- via_router : typing.Optional[bool]
171
-
172
- request_options : typing.Optional[RequestOptions]
173
- Request-specific configuration.
174
-
175
- Returns
176
- -------
177
- AsyncHttpResponse[TokenCostCalculateResponse]
178
- Success
179
- """
180
- _response = await self._client_wrapper.httpx_client.request(
181
- "token-cost",
182
- method="POST",
183
- json={
184
- "provider": provider,
185
- "model": model,
186
- "usage": convert_and_respect_annotation_metadata(
187
- object_=usage,
188
- annotation=TokenCostCalculateRequestUsage,
189
- direction="write",
190
- ),
191
- "viaRouter": via_router,
192
- },
193
- headers={
194
- "content-type": "application/json",
195
- },
196
- request_options=request_options,
197
- omit=OMIT,
198
- )
199
- try:
200
- if 200 <= _response.status_code < 300:
201
- _data = typing.cast(
202
- TokenCostCalculateResponse,
203
- parse_obj_as(
204
- type_=TokenCostCalculateResponse, # type: ignore
205
- object_=_response.json(),
206
- ),
207
- )
208
- return AsyncHttpResponse(response=_response, data=_data)
209
- if _response.status_code == 400:
210
- raise BadRequestError(
211
- headers=dict(_response.headers),
212
- body=typing.cast(
213
- typing.Optional[typing.Any],
214
- parse_obj_as(
215
- type_=typing.Optional[typing.Any], # type: ignore
216
- object_=_response.json(),
217
- ),
218
- ),
219
- )
220
- if _response.status_code == 401:
221
- raise UnauthorizedError(
222
- headers=dict(_response.headers),
223
- body=typing.cast(
224
- UnauthorizedErrorBody,
225
- parse_obj_as(
226
- type_=UnauthorizedErrorBody, # type: ignore
227
- object_=_response.json(),
228
- ),
229
- ),
230
- )
231
- if _response.status_code == 429:
232
- raise TooManyRequestsError(
233
- headers=dict(_response.headers),
234
- body=typing.cast(
235
- RateLimitError,
236
- parse_obj_as(
237
- type_=RateLimitError, # type: ignore
238
- object_=_response.json(),
239
- ),
240
- ),
241
- )
242
- if _response.status_code == 503:
243
- raise ServiceUnavailableError(
244
- headers=dict(_response.headers),
245
- body=typing.cast(
246
- typing.Optional[typing.Any],
247
- parse_obj_as(
248
- type_=typing.Optional[typing.Any], # type: ignore
249
- object_=_response.json(),
250
- ),
251
- ),
252
- )
253
- _response_json = _response.json()
254
- except JSONDecodeError:
255
- raise ApiError(
256
- status_code=_response.status_code,
257
- headers=dict(_response.headers),
258
- body=_response.text,
259
- )
260
- raise ApiError(
261
- status_code=_response.status_code,
262
- headers=dict(_response.headers),
263
- body=_response_json,
264
- )
@@ -1,8 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- # isort: skip_file
4
-
5
- from .token_cost_calculate_request_usage import TokenCostCalculateRequestUsage
6
- from .token_cost_calculate_response import TokenCostCalculateResponse
7
-
8
- __all__ = ["TokenCostCalculateRequestUsage", "TokenCostCalculateResponse"]