mistralai 1.9.10__tar.gz → 1.10.0__tar.gz

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 (485) hide show
  1. mistralai-1.9.10/README-PYPI.md → mistralai-1.10.0/PKG-INFO +117 -39
  2. mistralai-1.9.10/PKG-INFO → mistralai-1.10.0/README-PYPI.md +82 -68
  3. {mistralai-1.9.10 → mistralai-1.10.0}/pyproject.toml +5 -1
  4. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/_hooks/registration.py +5 -0
  5. mistralai-1.10.0/src/mistralai/_hooks/tracing.py +50 -0
  6. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/_version.py +3 -3
  7. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/accesses.py +51 -116
  8. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/agents.py +58 -85
  9. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/audio.py +8 -3
  10. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/basesdk.py +15 -5
  11. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/batch.py +6 -3
  12. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/beta.py +10 -5
  13. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/chat.py +70 -97
  14. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/classifiers.py +57 -144
  15. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/conversations.py +435 -412
  16. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/documents.py +156 -359
  17. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/embeddings.py +21 -42
  18. mistralai-1.10.0/src/mistralai/extra/observability/__init__.py +15 -0
  19. mistralai-1.10.0/src/mistralai/extra/observability/otel.py +393 -0
  20. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/run/tools.py +28 -16
  21. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/files.py +53 -176
  22. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/fim.py +46 -73
  23. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/fine_tuning.py +6 -3
  24. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/jobs.py +49 -158
  25. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/libraries.py +71 -178
  26. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/mistral_agents.py +298 -179
  27. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/mistral_jobs.py +51 -138
  28. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/__init__.py +94 -5
  29. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agent.py +15 -2
  30. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agentconversation.py +11 -3
  31. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agentcreationrequest.py +6 -2
  32. mistralai-1.9.10/src/mistralai/models/agents_api_v1_agents_getop.py → mistralai-1.10.0/src/mistralai/models/agents_api_v1_agents_deleteop.py +2 -2
  33. mistralai-1.10.0/src/mistralai/models/agents_api_v1_agents_getop.py +53 -0
  34. mistralai-1.10.0/src/mistralai/models/agents_api_v1_agents_listop.py +94 -0
  35. mistralai-1.10.0/src/mistralai/models/agents_api_v1_conversations_deleteop.py +18 -0
  36. mistralai-1.10.0/src/mistralai/models/agents_api_v1_conversations_listop.py +74 -0
  37. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agentscompletionrequest.py +21 -6
  38. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agentscompletionstreamrequest.py +21 -6
  39. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agentupdaterequest.py +18 -2
  40. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/audiotranscriptionrequest.py +2 -0
  41. mistralai-1.10.0/src/mistralai/models/batchjobin.py +73 -0
  42. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/chatcompletionrequest.py +22 -5
  43. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/chatcompletionstreamrequest.py +22 -5
  44. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationrequest.py +15 -4
  45. mistralai-1.10.0/src/mistralai/models/conversationrestartrequest.py +90 -0
  46. mistralai-1.10.0/src/mistralai/models/conversationrestartstreamrequest.py +92 -0
  47. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationstreamrequest.py +15 -4
  48. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/documentout.py +26 -10
  49. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/documentupdatein.py +24 -3
  50. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/embeddingrequest.py +8 -8
  51. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/files_api_routes_list_filesop.py +7 -0
  52. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/fimcompletionrequest.py +8 -9
  53. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/fimcompletionstreamrequest.py +8 -9
  54. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/httpvalidationerror.py +11 -6
  55. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_list_v1op.py +15 -2
  56. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraryout.py +10 -7
  57. mistralai-1.10.0/src/mistralai/models/listfilesout.py +52 -0
  58. mistralai-1.10.0/src/mistralai/models/mistralerror.py +26 -0
  59. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/modelcapabilities.py +13 -4
  60. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/modelconversation.py +8 -2
  61. mistralai-1.10.0/src/mistralai/models/no_response_error.py +13 -0
  62. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ocrpageobject.py +26 -5
  63. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ocrrequest.py +17 -1
  64. mistralai-1.10.0/src/mistralai/models/ocrtableobject.py +31 -0
  65. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/prediction.py +4 -0
  66. mistralai-1.10.0/src/mistralai/models/requestsource.py +7 -0
  67. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/responseformat.py +4 -2
  68. mistralai-1.10.0/src/mistralai/models/responseformats.py +7 -0
  69. mistralai-1.10.0/src/mistralai/models/responsevalidationerror.py +25 -0
  70. mistralai-1.10.0/src/mistralai/models/sdkerror.py +38 -0
  71. mistralai-1.9.10/src/mistralai/models/batchjobin.py → mistralai-1.10.0/src/mistralai/models/sharingdelete.py +15 -21
  72. mistralai-1.10.0/src/mistralai/models/sharingin.py +61 -0
  73. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/sharingout.py +3 -3
  74. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolexecutiondeltaevent.py +13 -4
  75. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolexecutiondoneevent.py +13 -4
  76. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolexecutionentry.py +9 -4
  77. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolexecutionstartedevent.py +13 -4
  78. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models_.py +67 -212
  79. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/ocr.py +33 -36
  80. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/sdk.py +15 -2
  81. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/transcriptions.py +21 -60
  82. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/__init__.py +18 -5
  83. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/eventstreaming.py +10 -0
  84. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/serializers.py +3 -2
  85. mistralai-1.10.0/src/mistralai/utils/unmarshal_json_response.py +24 -0
  86. mistralai-1.9.10/src/mistralai/models/agents_api_v1_agents_listop.py +0 -24
  87. mistralai-1.9.10/src/mistralai/models/agents_api_v1_conversations_listop.py +0 -37
  88. mistralai-1.9.10/src/mistralai/models/conversationrestartrequest.py +0 -42
  89. mistralai-1.9.10/src/mistralai/models/conversationrestartstreamrequest.py +0 -44
  90. mistralai-1.9.10/src/mistralai/models/listfilesout.py +0 -21
  91. mistralai-1.9.10/src/mistralai/models/responseformats.py +0 -8
  92. mistralai-1.9.10/src/mistralai/models/sdkerror.py +0 -22
  93. mistralai-1.9.10/src/mistralai/models/sharingdelete.py +0 -26
  94. mistralai-1.9.10/src/mistralai/models/sharingin.py +0 -30
  95. {mistralai-1.9.10 → mistralai-1.10.0}/LICENSE +0 -0
  96. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/__init__.py +0 -0
  97. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/_hooks/__init__.py +0 -0
  98. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/_hooks/custom_user_agent.py +0 -0
  99. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/_hooks/registration.py +0 -0
  100. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/_hooks/sdkhooks.py +0 -0
  101. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/_hooks/types.py +0 -0
  102. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/_version.py +0 -0
  103. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/basesdk.py +0 -0
  104. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/chat.py +0 -0
  105. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/httpclient.py +0 -0
  106. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/__init__.py +0 -0
  107. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/assistantmessage.py +0 -0
  108. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionchoice.py +0 -0
  109. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionrequest.py +0 -0
  110. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionresponse.py +0 -0
  111. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionstreamrequest.py +0 -0
  112. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/completionchunk.py +0 -0
  113. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/completionevent.py +0 -0
  114. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/completionresponsestreamchoice.py +0 -0
  115. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/contentchunk.py +0 -0
  116. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/deltamessage.py +0 -0
  117. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/documenturlchunk.py +0 -0
  118. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/filechunk.py +0 -0
  119. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/function.py +0 -0
  120. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/functioncall.py +0 -0
  121. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/functionname.py +0 -0
  122. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/httpvalidationerror.py +0 -0
  123. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/imageurl.py +0 -0
  124. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/imageurlchunk.py +0 -0
  125. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/jsonschema.py +0 -0
  126. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/mistralpromptmode.py +0 -0
  127. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/ocrimageobject.py +0 -0
  128. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/ocrpagedimensions.py +0 -0
  129. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/ocrpageobject.py +0 -0
  130. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/ocrrequest.py +0 -0
  131. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/ocrresponse.py +0 -0
  132. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/ocrusageinfo.py +0 -0
  133. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/prediction.py +0 -0
  134. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/referencechunk.py +0 -0
  135. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/responseformat.py +0 -0
  136. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/responseformats.py +0 -0
  137. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/sdkerror.py +0 -0
  138. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/security.py +0 -0
  139. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/systemmessage.py +0 -0
  140. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/textchunk.py +0 -0
  141. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/tool.py +0 -0
  142. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/toolcall.py +0 -0
  143. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/toolchoice.py +0 -0
  144. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/toolchoiceenum.py +0 -0
  145. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/toolmessage.py +0 -0
  146. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/tooltypes.py +0 -0
  147. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/usageinfo.py +0 -0
  148. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/usermessage.py +0 -0
  149. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/models/validationerror.py +0 -0
  150. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/ocr.py +0 -0
  151. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/py.typed +0 -0
  152. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/sdk.py +0 -0
  153. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/sdkconfiguration.py +0 -0
  154. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/types/__init__.py +0 -0
  155. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/types/basemodel.py +0 -0
  156. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/__init__.py +0 -0
  157. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/annotations.py +0 -0
  158. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/datetimes.py +0 -0
  159. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/enums.py +0 -0
  160. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/eventstreaming.py +0 -0
  161. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/forms.py +0 -0
  162. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/headers.py +0 -0
  163. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/logger.py +0 -0
  164. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/metadata.py +0 -0
  165. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/queryparams.py +0 -0
  166. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/requestbodies.py +0 -0
  167. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/retries.py +0 -0
  168. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/security.py +0 -0
  169. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/serializers.py +0 -0
  170. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/url.py +0 -0
  171. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_azure/src/mistralai_azure/utils/values.py +0 -0
  172. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/__init__.py +0 -0
  173. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/_hooks/__init__.py +0 -0
  174. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/_hooks/custom_user_agent.py +0 -0
  175. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/_hooks/registration.py +0 -0
  176. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/_hooks/sdkhooks.py +0 -0
  177. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/_hooks/types.py +0 -0
  178. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/_version.py +0 -0
  179. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/basesdk.py +0 -0
  180. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/chat.py +0 -0
  181. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/fim.py +0 -0
  182. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/httpclient.py +0 -0
  183. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/__init__.py +0 -0
  184. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/assistantmessage.py +0 -0
  185. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionchoice.py +0 -0
  186. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionrequest.py +0 -0
  187. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionresponse.py +0 -0
  188. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionstreamrequest.py +0 -0
  189. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/completionchunk.py +0 -0
  190. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/completionevent.py +0 -0
  191. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/completionresponsestreamchoice.py +0 -0
  192. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/contentchunk.py +0 -0
  193. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/deltamessage.py +0 -0
  194. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionrequest.py +0 -0
  195. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionresponse.py +0 -0
  196. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionstreamrequest.py +0 -0
  197. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/function.py +0 -0
  198. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/functioncall.py +0 -0
  199. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/functionname.py +0 -0
  200. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/httpvalidationerror.py +0 -0
  201. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/imageurl.py +0 -0
  202. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/imageurlchunk.py +0 -0
  203. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/jsonschema.py +0 -0
  204. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/prediction.py +0 -0
  205. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/referencechunk.py +0 -0
  206. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/responseformat.py +0 -0
  207. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/responseformats.py +0 -0
  208. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/sdkerror.py +0 -0
  209. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/security.py +0 -0
  210. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/systemmessage.py +0 -0
  211. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/textchunk.py +0 -0
  212. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/tool.py +0 -0
  213. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/toolcall.py +0 -0
  214. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/toolchoice.py +0 -0
  215. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/toolchoiceenum.py +0 -0
  216. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/toolmessage.py +0 -0
  217. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/tooltypes.py +0 -0
  218. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/usageinfo.py +0 -0
  219. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/usermessage.py +0 -0
  220. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/models/validationerror.py +0 -0
  221. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/py.typed +0 -0
  222. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/sdk.py +0 -0
  223. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/sdkconfiguration.py +0 -0
  224. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/types/__init__.py +0 -0
  225. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/types/basemodel.py +0 -0
  226. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/__init__.py +0 -0
  227. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/annotations.py +0 -0
  228. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/enums.py +0 -0
  229. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/eventstreaming.py +0 -0
  230. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/forms.py +0 -0
  231. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/headers.py +0 -0
  232. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/logger.py +0 -0
  233. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/metadata.py +0 -0
  234. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/queryparams.py +0 -0
  235. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/requestbodies.py +0 -0
  236. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/retries.py +0 -0
  237. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/security.py +0 -0
  238. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/serializers.py +0 -0
  239. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/url.py +0 -0
  240. {mistralai-1.9.10 → mistralai-1.10.0}/packages/mistralai_gcp/src/mistralai_gcp/utils/values.py +0 -0
  241. {mistralai-1.9.10 → mistralai-1.10.0}/py.typed +0 -0
  242. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/__init__.py +0 -0
  243. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/_hooks/__init__.py +0 -0
  244. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/_hooks/custom_user_agent.py +0 -0
  245. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/_hooks/deprecation_warning.py +0 -0
  246. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/_hooks/sdkhooks.py +0 -0
  247. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/_hooks/types.py +0 -0
  248. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/async_client.py +0 -0
  249. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/client.py +0 -0
  250. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/README.md +0 -0
  251. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/__init__.py +0 -0
  252. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/exceptions.py +0 -0
  253. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/mcp/__init__.py +0 -0
  254. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/mcp/auth.py +0 -0
  255. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/mcp/base.py +0 -0
  256. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/mcp/sse.py +0 -0
  257. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/mcp/stdio.py +0 -0
  258. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/run/__init__.py +0 -0
  259. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/run/context.py +0 -0
  260. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/run/result.py +0 -0
  261. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/run/utils.py +0 -0
  262. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/struct_chat.py +0 -0
  263. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/tests/__init__.py +0 -0
  264. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/tests/test_struct_chat.py +0 -0
  265. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/tests/test_utils.py +0 -0
  266. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/utils/__init__.py +0 -0
  267. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/utils/_pydantic_helper.py +0 -0
  268. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/extra/utils/response_format.py +0 -0
  269. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/httpclient.py +0 -0
  270. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agenthandoffdoneevent.py +0 -0
  271. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agenthandoffentry.py +0 -0
  272. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agenthandoffstartedevent.py +0 -0
  273. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_agents_update_versionop.py +0 -0
  274. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_agents_updateop.py +0 -0
  275. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_conversations_append_streamop.py +0 -0
  276. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_conversations_appendop.py +0 -0
  277. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_conversations_getop.py +0 -0
  278. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_conversations_historyop.py +0 -0
  279. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_conversations_messagesop.py +0 -0
  280. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_conversations_restart_streamop.py +0 -0
  281. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/agents_api_v1_conversations_restartop.py +0 -0
  282. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/apiendpoint.py +0 -0
  283. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/archiveftmodelout.py +0 -0
  284. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/assistantmessage.py +0 -0
  285. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/audiochunk.py +0 -0
  286. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/audiotranscriptionrequeststream.py +0 -0
  287. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/basemodelcard.py +0 -0
  288. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/batcherror.py +0 -0
  289. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/batchjobout.py +0 -0
  290. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/batchjobsout.py +0 -0
  291. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/batchjobstatus.py +0 -0
  292. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/builtinconnectors.py +0 -0
  293. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/chatclassificationrequest.py +0 -0
  294. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/chatcompletionchoice.py +0 -0
  295. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/chatcompletionresponse.py +0 -0
  296. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/chatmoderationrequest.py +0 -0
  297. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/checkpointout.py +0 -0
  298. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classificationrequest.py +0 -0
  299. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classificationresponse.py +0 -0
  300. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classificationtargetresult.py +0 -0
  301. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classifierdetailedjobout.py +0 -0
  302. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classifierftmodelout.py +0 -0
  303. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classifierjobout.py +0 -0
  304. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classifiertargetin.py +0 -0
  305. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classifiertargetout.py +0 -0
  306. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classifiertrainingparameters.py +0 -0
  307. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/classifiertrainingparametersin.py +0 -0
  308. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/codeinterpretertool.py +0 -0
  309. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completionargs.py +0 -0
  310. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completionargsstop.py +0 -0
  311. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completionchunk.py +0 -0
  312. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completiondetailedjobout.py +0 -0
  313. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completionevent.py +0 -0
  314. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completionftmodelout.py +0 -0
  315. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completionjobout.py +0 -0
  316. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completionresponsestreamchoice.py +0 -0
  317. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completiontrainingparameters.py +0 -0
  318. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/completiontrainingparametersin.py +0 -0
  319. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/contentchunk.py +0 -0
  320. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationappendrequest.py +0 -0
  321. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationappendstreamrequest.py +0 -0
  322. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationevents.py +0 -0
  323. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationhistory.py +0 -0
  324. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationinputs.py +0 -0
  325. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationmessages.py +0 -0
  326. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationresponse.py +0 -0
  327. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/conversationusageinfo.py +0 -0
  328. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/delete_model_v1_models_model_id_deleteop.py +0 -0
  329. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/deletefileout.py +0 -0
  330. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/deletemodelout.py +0 -0
  331. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/deltamessage.py +0 -0
  332. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/documentlibrarytool.py +0 -0
  333. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/documenttextcontent.py +0 -0
  334. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/documenturlchunk.py +0 -0
  335. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/embeddingdtype.py +0 -0
  336. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/embeddingresponse.py +0 -0
  337. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/embeddingresponsedata.py +0 -0
  338. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/encodingformat.py +0 -0
  339. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/entitytype.py +0 -0
  340. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/eventout.py +0 -0
  341. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/file.py +0 -0
  342. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/filechunk.py +0 -0
  343. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/filepurpose.py +0 -0
  344. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/files_api_routes_delete_fileop.py +0 -0
  345. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/files_api_routes_download_fileop.py +0 -0
  346. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/files_api_routes_get_signed_urlop.py +0 -0
  347. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/files_api_routes_retrieve_fileop.py +0 -0
  348. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/files_api_routes_upload_fileop.py +0 -0
  349. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/fileschema.py +0 -0
  350. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/filesignedurl.py +0 -0
  351. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/fimcompletionresponse.py +0 -0
  352. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/finetuneablemodeltype.py +0 -0
  353. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ftclassifierlossfunction.py +0 -0
  354. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ftmodelcapabilitiesout.py +0 -0
  355. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ftmodelcard.py +0 -0
  356. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/function.py +0 -0
  357. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/functioncall.py +0 -0
  358. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/functioncallentry.py +0 -0
  359. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/functioncallentryarguments.py +0 -0
  360. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/functioncallevent.py +0 -0
  361. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/functionname.py +0 -0
  362. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/functionresultentry.py +0 -0
  363. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/functiontool.py +0 -0
  364. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/githubrepositoryin.py +0 -0
  365. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/githubrepositoryout.py +0 -0
  366. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/imagegenerationtool.py +0 -0
  367. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/imageurl.py +0 -0
  368. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/imageurlchunk.py +0 -0
  369. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/inputentries.py +0 -0
  370. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/inputs.py +0 -0
  371. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/instructrequest.py +0 -0
  372. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobin.py +0 -0
  373. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobmetadataout.py +0 -0
  374. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_batch_cancel_batch_jobop.py +0 -0
  375. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_batch_get_batch_jobop.py +0 -0
  376. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_batch_get_batch_jobsop.py +0 -0
  377. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_fine_tuning_archive_fine_tuned_modelop.py +0 -0
  378. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_fine_tuning_cancel_fine_tuning_jobop.py +0 -0
  379. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_fine_tuning_create_fine_tuning_jobop.py +0 -0
  380. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_fine_tuning_get_fine_tuning_jobop.py +0 -0
  381. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_fine_tuning_get_fine_tuning_jobsop.py +0 -0
  382. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_fine_tuning_start_fine_tuning_jobop.py +0 -0
  383. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_fine_tuning_unarchive_fine_tuned_modelop.py +0 -0
  384. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobs_api_routes_fine_tuning_update_fine_tuned_modelop.py +0 -0
  385. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jobsout.py +0 -0
  386. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/jsonschema.py +0 -0
  387. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/legacyjobmetadataout.py +0 -0
  388. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_delete_v1op.py +0 -0
  389. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_delete_v1op.py +0 -0
  390. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_get_extracted_text_signed_url_v1op.py +0 -0
  391. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_get_signed_url_v1op.py +0 -0
  392. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_get_status_v1op.py +0 -0
  393. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_get_text_content_v1op.py +0 -0
  394. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_get_v1op.py +0 -0
  395. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_reprocess_v1op.py +0 -0
  396. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_update_v1op.py +0 -0
  397. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_documents_upload_v1op.py +0 -0
  398. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_get_v1op.py +0 -0
  399. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_share_create_v1op.py +0 -0
  400. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_share_delete_v1op.py +0 -0
  401. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_share_list_v1op.py +0 -0
  402. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraries_update_v1op.py +0 -0
  403. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraryin.py +0 -0
  404. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/libraryinupdate.py +0 -0
  405. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/listdocumentout.py +0 -0
  406. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/listlibraryout.py +0 -0
  407. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/listsharingout.py +0 -0
  408. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/messageentries.py +0 -0
  409. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/messageinputcontentchunks.py +0 -0
  410. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/messageinputentry.py +0 -0
  411. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/messageoutputcontentchunks.py +0 -0
  412. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/messageoutputentry.py +0 -0
  413. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/messageoutputevent.py +0 -0
  414. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/metricout.py +0 -0
  415. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/mistralpromptmode.py +0 -0
  416. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/modellist.py +0 -0
  417. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/moderationobject.py +0 -0
  418. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/moderationresponse.py +0 -0
  419. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ocrimageobject.py +0 -0
  420. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ocrpagedimensions.py +0 -0
  421. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ocrresponse.py +0 -0
  422. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ocrusageinfo.py +0 -0
  423. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/outputcontentchunks.py +0 -0
  424. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/paginationinfo.py +0 -0
  425. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/processingstatusout.py +0 -0
  426. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/referencechunk.py +0 -0
  427. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/responsedoneevent.py +0 -0
  428. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/responseerrorevent.py +0 -0
  429. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/responsestartedevent.py +0 -0
  430. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/retrieve_model_v1_models_model_id_getop.py +0 -0
  431. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/retrievefileout.py +0 -0
  432. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/sampletype.py +0 -0
  433. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/security.py +0 -0
  434. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/shareenum.py +0 -0
  435. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/source.py +0 -0
  436. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/ssetypes.py +0 -0
  437. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/systemmessage.py +0 -0
  438. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/systemmessagecontentchunks.py +0 -0
  439. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/textchunk.py +0 -0
  440. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/thinkchunk.py +0 -0
  441. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/timestampgranularity.py +0 -0
  442. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/tool.py +0 -0
  443. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolcall.py +0 -0
  444. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolchoice.py +0 -0
  445. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolchoiceenum.py +0 -0
  446. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolfilechunk.py +0 -0
  447. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolmessage.py +0 -0
  448. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/toolreferencechunk.py +0 -0
  449. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/tooltypes.py +0 -0
  450. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/trainingfile.py +0 -0
  451. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/transcriptionresponse.py +0 -0
  452. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/transcriptionsegmentchunk.py +0 -0
  453. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/transcriptionstreamdone.py +0 -0
  454. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/transcriptionstreamevents.py +0 -0
  455. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/transcriptionstreameventtypes.py +0 -0
  456. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/transcriptionstreamlanguage.py +0 -0
  457. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/transcriptionstreamsegmentdelta.py +0 -0
  458. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/transcriptionstreamtextdelta.py +0 -0
  459. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/unarchiveftmodelout.py +0 -0
  460. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/updateftmodelin.py +0 -0
  461. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/uploadfileout.py +0 -0
  462. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/usageinfo.py +0 -0
  463. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/usermessage.py +0 -0
  464. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/validationerror.py +0 -0
  465. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/wandbintegration.py +0 -0
  466. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/wandbintegrationout.py +0 -0
  467. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/websearchpremiumtool.py +0 -0
  468. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/models/websearchtool.py +0 -0
  469. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/py.typed +0 -0
  470. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/sdkconfiguration.py +0 -0
  471. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/types/__init__.py +0 -0
  472. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/types/basemodel.py +0 -0
  473. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/annotations.py +0 -0
  474. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/datetimes.py +0 -0
  475. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/enums.py +0 -0
  476. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/forms.py +0 -0
  477. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/headers.py +0 -0
  478. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/logger.py +0 -0
  479. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/metadata.py +0 -0
  480. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/queryparams.py +0 -0
  481. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/requestbodies.py +0 -0
  482. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/retries.py +0 -0
  483. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/security.py +0 -0
  484. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/url.py +0 -0
  485. {mistralai-1.9.10 → mistralai-1.10.0}/src/mistralai/utils/values.py +0 -0
@@ -1,3 +1,38 @@
1
+ Metadata-Version: 2.4
2
+ Name: mistralai
3
+ Version: 1.10.0
4
+ Summary: Python Client SDK for the Mistral AI API.
5
+ License-File: LICENSE
6
+ Author: Mistral
7
+ Requires-Python: >=3.9
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.9
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Provides-Extra: agents
16
+ Provides-Extra: gcp
17
+ Requires-Dist: authlib (>=1.5.2,<2.0) ; extra == "agents"
18
+ Requires-Dist: eval-type-backport (>=0.2.0)
19
+ Requires-Dist: google-auth (>=2.27.0) ; extra == "gcp"
20
+ Requires-Dist: griffe (>=1.7.3,<2.0) ; extra == "agents"
21
+ Requires-Dist: httpx (>=0.28.1)
22
+ Requires-Dist: invoke (>=2.2.0,<3.0.0)
23
+ Requires-Dist: mcp (>=1.0,<2.0) ; (python_version >= "3.10") and (extra == "agents")
24
+ Requires-Dist: opentelemetry-api (>=1.33.1,<2.0.0)
25
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.37.0,<2.0.0)
26
+ Requires-Dist: opentelemetry-sdk (>=1.33.1,<2.0.0)
27
+ Requires-Dist: opentelemetry-semantic-conventions (>=0.59b0,<0.60)
28
+ Requires-Dist: pydantic (>=2.10.3)
29
+ Requires-Dist: python-dateutil (>=2.8.2)
30
+ Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
31
+ Requires-Dist: requests (>=2.32.3) ; extra == "gcp"
32
+ Requires-Dist: typing-inspection (>=0.4.0)
33
+ Project-URL: Repository, https://github.com/mistralai/client-python.git
34
+ Description-Content-Type: text/markdown
35
+
1
36
  # Mistral Python Client
2
37
 
3
38
  ## Migration warning
@@ -58,7 +93,15 @@ Mistral AI API: Our Chat Completion and Embeddings APIs specification. Create yo
58
93
  >
59
94
  > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
60
95
 
61
- The SDK can be installed with either *pip* or *poetry* package managers.
96
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
97
+
98
+ ### uv
99
+
100
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
101
+
102
+ ```bash
103
+ uv add mistralai
104
+ ```
62
105
 
63
106
  ### PIP
64
107
 
@@ -137,12 +180,14 @@ with Mistral(
137
180
  api_key=os.getenv("MISTRAL_API_KEY", ""),
138
181
  ) as mistral:
139
182
 
140
- res = mistral.chat.complete(model="mistral-small-latest", messages=[
183
+ res = mistral.chat.complete(model="mistral-large-latest", messages=[
141
184
  {
142
185
  "content": "Who is the best French painter? Answer in one short sentence.",
143
186
  "role": "user",
144
187
  },
145
- ], stream=False)
188
+ ], stream=False, response_format={
189
+ "type": "text",
190
+ })
146
191
 
147
192
  # Handle response
148
193
  print(res)
@@ -150,7 +195,7 @@ with Mistral(
150
195
 
151
196
  </br>
152
197
 
153
- The same SDK client can also be used to make asychronous requests by importing asyncio.
198
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
154
199
  ```python
155
200
  # Asynchronous Example
156
201
  import asyncio
@@ -163,12 +208,14 @@ async def main():
163
208
  api_key=os.getenv("MISTRAL_API_KEY", ""),
164
209
  ) as mistral:
165
210
 
166
- res = await mistral.chat.complete_async(model="mistral-small-latest", messages=[
211
+ res = await mistral.chat.complete_async(model="mistral-large-latest", messages=[
167
212
  {
168
213
  "content": "Who is the best French painter? Answer in one short sentence.",
169
214
  "role": "user",
170
215
  },
171
- ], stream=False)
216
+ ], stream=False, response_format={
217
+ "type": "text",
218
+ })
172
219
 
173
220
  # Handle response
174
221
  print(res)
@@ -201,7 +248,7 @@ with Mistral(
201
248
 
202
249
  </br>
203
250
 
204
- The same SDK client can also be used to make asychronous requests by importing asyncio.
251
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
205
252
  ```python
206
253
  # Asynchronous Example
207
254
  import asyncio
@@ -244,7 +291,9 @@ with Mistral(
244
291
  "content": "Who is the best French painter? Answer in one short sentence.",
245
292
  "role": "user",
246
293
  },
247
- ], agent_id="<id>", stream=False)
294
+ ], agent_id="<id>", stream=False, response_format={
295
+ "type": "text",
296
+ })
248
297
 
249
298
  # Handle response
250
299
  print(res)
@@ -252,7 +301,7 @@ with Mistral(
252
301
 
253
302
  </br>
254
303
 
255
- The same SDK client can also be used to make asychronous requests by importing asyncio.
304
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
256
305
  ```python
257
306
  # Asynchronous Example
258
307
  import asyncio
@@ -270,7 +319,9 @@ async def main():
270
319
  "content": "Who is the best French painter? Answer in one short sentence.",
271
320
  "role": "user",
272
321
  },
273
- ], agent_id="<id>", stream=False)
322
+ ], agent_id="<id>", stream=False, response_format={
323
+ "type": "text",
324
+ })
274
325
 
275
326
  # Handle response
276
327
  print(res)
@@ -303,7 +354,7 @@ with Mistral(
303
354
 
304
355
  </br>
305
356
 
306
- The same SDK client can also be used to make asychronous requests by importing asyncio.
357
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
307
358
  ```python
308
359
  # Asynchronous Example
309
360
  import asyncio
@@ -440,7 +491,7 @@ The documentation for the GCP SDK is available [here](https://github.com/mistral
440
491
  #### [audio.transcriptions](https://github.com/mistralai/client-python/blob/master/docs/sdks/transcriptions/README.md)
441
492
 
442
493
  * [complete](https://github.com/mistralai/client-python/blob/master/docs/sdks/transcriptions/README.md#complete) - Create Transcription
443
- * [stream](https://github.com/mistralai/client-python/blob/master/docs/sdks/transcriptions/README.md#stream) - Create streaming transcription (SSE)
494
+ * [stream](https://github.com/mistralai/client-python/blob/master/docs/sdks/transcriptions/README.md#stream) - Create Streaming Transcription (SSE)
444
495
 
445
496
  ### [batch](https://github.com/mistralai/client-python/blob/master/docs/sdks/batch/README.md)
446
497
 
@@ -461,6 +512,7 @@ The documentation for the GCP SDK is available [here](https://github.com/mistral
461
512
  * [list](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#list) - List agent entities.
462
513
  * [get](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#get) - Retrieve an agent entity.
463
514
  * [update](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#update) - Update an agent entity.
515
+ * [delete](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#delete) - Delete an agent entity.
464
516
  * [update_version](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#update_version) - Update an agent version.
465
517
 
466
518
  #### [beta.conversations](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md)
@@ -468,6 +520,7 @@ The documentation for the GCP SDK is available [here](https://github.com/mistral
468
520
  * [start](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#start) - Create a conversation and append entries to it.
469
521
  * [list](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#list) - List all created conversations.
470
522
  * [get](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#get) - Retrieve a conversation information.
523
+ * [delete](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#delete) - Delete a conversation.
471
524
  * [append](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#append) - Append new entries to an existing conversation.
472
525
  * [get_history](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#get_history) - Retrieve all entries in a conversation.
473
526
  * [get_messages](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#get_messages) - Retrieve all messages in a conversation.
@@ -492,7 +545,7 @@ The documentation for the GCP SDK is available [here](https://github.com/mistral
492
545
 
493
546
  #### [beta.libraries.documents](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md)
494
547
 
495
- * [list](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#list) - List document in a given library.
548
+ * [list](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#list) - List documents in a given library.
496
549
  * [upload](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#upload) - Upload a new document.
497
550
  * [get](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#get) - Retrieve the metadata of a specific document.
498
551
  * [update](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#update) - Update the metadata of a specific document.
@@ -589,7 +642,11 @@ with Mistral(
589
642
  "tool_call_id": "<id>",
590
643
  "result": "<value>",
591
644
  },
592
- ], stream=True)
645
+ ], stream=True, completion_args={
646
+ "response_format": {
647
+ "type": "text",
648
+ },
649
+ })
593
650
 
594
651
  with res as event_stream:
595
652
  for event in event_stream:
@@ -680,27 +737,20 @@ with Mistral(
680
737
  <!-- Start Error Handling [errors] -->
681
738
  ## Error Handling
682
739
 
683
- Handling errors in this SDK should largely match your expectations. All operations return a response object or raise an exception.
684
-
685
- By default, an API error will raise a models.SDKError exception, which has the following properties:
686
-
687
- | Property | Type | Description |
688
- |-----------------|------------------|-----------------------|
689
- | `.status_code` | *int* | The HTTP status code |
690
- | `.message` | *str* | The error message |
691
- | `.raw_response` | *httpx.Response* | The raw HTTP response |
692
- | `.body` | *str* | The response content |
740
+ [`MistralError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/mistralerror.py) is the base class for all HTTP error responses. It has the following properties:
693
741
 
694
- When custom error responses are specified for an operation, the SDK may also raise their associated exceptions. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `list_async` method may raise the following exceptions:
695
-
696
- | Error Type | Status Code | Content Type |
697
- | -------------------------- | ----------- | ---------------- |
698
- | models.HTTPValidationError | 422 | application/json |
699
- | models.SDKError | 4XX, 5XX | \*/\* |
742
+ | Property | Type | Description |
743
+ | ------------------ | ---------------- | --------------------------------------------------------------------------------------- |
744
+ | `err.message` | `str` | Error message |
745
+ | `err.status_code` | `int` | HTTP response status code eg `404` |
746
+ | `err.headers` | `httpx.Headers` | HTTP response headers |
747
+ | `err.body` | `str` | HTTP body. Can be empty string if no body is returned. |
748
+ | `err.raw_response` | `httpx.Response` | Raw HTTP response |
749
+ | `err.data` | | Optional. Some errors may contain structured data. [See Error Classes](https://github.com/mistralai/client-python/blob/master/#error-classes). |
700
750
 
701
751
  ### Example
702
-
703
752
  ```python
753
+ import mistralai
704
754
  from mistralai import Mistral, models
705
755
  import os
706
756
 
@@ -711,18 +761,46 @@ with Mistral(
711
761
  res = None
712
762
  try:
713
763
 
714
- res = mistral.models.list()
764
+ res = mistral.models.retrieve(model_id="ft:open-mistral-7b:587a6b29:20240514:7e773925")
715
765
 
716
766
  # Handle response
717
767
  print(res)
718
768
 
719
- except models.HTTPValidationError as e:
720
- # handle e.data: models.HTTPValidationErrorData
721
- raise(e)
722
- except models.SDKError as e:
723
- # handle exception
724
- raise(e)
769
+
770
+ except models.MistralError as e:
771
+ # The base class for HTTP error responses
772
+ print(e.message)
773
+ print(e.status_code)
774
+ print(e.body)
775
+ print(e.headers)
776
+ print(e.raw_response)
777
+
778
+ # Depending on the method different errors may be thrown
779
+ if isinstance(e, models.HTTPValidationError):
780
+ print(e.data.detail) # Optional[List[mistralai.ValidationError]]
725
781
  ```
782
+
783
+ ### Error Classes
784
+ **Primary error:**
785
+ * [`MistralError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/mistralerror.py): The base class for HTTP error responses.
786
+
787
+ <details><summary>Less common errors (6)</summary>
788
+
789
+ <br />
790
+
791
+ **Network errors:**
792
+ * [`httpx.RequestError`](https://www.python-httpx.org/exceptions/#httpx.RequestError): Base class for request errors.
793
+ * [`httpx.ConnectError`](https://www.python-httpx.org/exceptions/#httpx.ConnectError): HTTP client was unable to make a request to a server.
794
+ * [`httpx.TimeoutException`](https://www.python-httpx.org/exceptions/#httpx.TimeoutException): HTTP request timed out.
795
+
796
+
797
+ **Inherit from [`MistralError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/mistralerror.py)**:
798
+ * [`HTTPValidationError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/httpvalidationerror.py): Validation Error. Status code `422`. Applicable to 48 of 70 methods.*
799
+ * [`ResponseValidationError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.
800
+
801
+ </details>
802
+
803
+ \* Check [the method documentation](https://github.com/mistralai/client-python/blob/master/#available-resources-and-operations) to see if the error is applicable.
726
804
  <!-- End Error Handling [errors] -->
727
805
 
728
806
  <!-- Start Server Selection [server] -->
@@ -948,4 +1026,4 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
948
1026
  ## Contributions
949
1027
 
950
1028
  While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation.
951
- We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
1029
+ We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
@@ -1,32 +1,3 @@
1
- Metadata-Version: 2.3
2
- Name: mistralai
3
- Version: 1.9.10
4
- Summary: Python Client SDK for the Mistral AI API.
5
- Author: Mistral
6
- Requires-Python: >=3.9
7
- Classifier: Programming Language :: Python :: 3
8
- Classifier: Programming Language :: Python :: 3.9
9
- Classifier: Programming Language :: Python :: 3.10
10
- Classifier: Programming Language :: Python :: 3.11
11
- Classifier: Programming Language :: Python :: 3.12
12
- Classifier: Programming Language :: Python :: 3.13
13
- Provides-Extra: agents
14
- Provides-Extra: gcp
15
- Requires-Dist: authlib (>=1.5.2,<2.0) ; extra == "agents"
16
- Requires-Dist: eval-type-backport (>=0.2.0)
17
- Requires-Dist: google-auth (>=2.27.0) ; extra == "gcp"
18
- Requires-Dist: griffe (>=1.7.3,<2.0) ; extra == "agents"
19
- Requires-Dist: httpx (>=0.28.1)
20
- Requires-Dist: invoke (>=2.2.0,<3.0.0)
21
- Requires-Dist: mcp (>=1.0,<2.0) ; (python_version >= "3.10") and (extra == "agents")
22
- Requires-Dist: pydantic (>=2.10.3)
23
- Requires-Dist: python-dateutil (>=2.8.2)
24
- Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
25
- Requires-Dist: requests (>=2.32.3) ; extra == "gcp"
26
- Requires-Dist: typing-inspection (>=0.4.0)
27
- Project-URL: Repository, https://github.com/mistralai/client-python.git
28
- Description-Content-Type: text/markdown
29
-
30
1
  # Mistral Python Client
31
2
 
32
3
  ## Migration warning
@@ -87,7 +58,15 @@ Mistral AI API: Our Chat Completion and Embeddings APIs specification. Create yo
87
58
  >
88
59
  > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
89
60
 
90
- The SDK can be installed with either *pip* or *poetry* package managers.
61
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
62
+
63
+ ### uv
64
+
65
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
66
+
67
+ ```bash
68
+ uv add mistralai
69
+ ```
91
70
 
92
71
  ### PIP
93
72
 
@@ -166,12 +145,14 @@ with Mistral(
166
145
  api_key=os.getenv("MISTRAL_API_KEY", ""),
167
146
  ) as mistral:
168
147
 
169
- res = mistral.chat.complete(model="mistral-small-latest", messages=[
148
+ res = mistral.chat.complete(model="mistral-large-latest", messages=[
170
149
  {
171
150
  "content": "Who is the best French painter? Answer in one short sentence.",
172
151
  "role": "user",
173
152
  },
174
- ], stream=False)
153
+ ], stream=False, response_format={
154
+ "type": "text",
155
+ })
175
156
 
176
157
  # Handle response
177
158
  print(res)
@@ -179,7 +160,7 @@ with Mistral(
179
160
 
180
161
  </br>
181
162
 
182
- The same SDK client can also be used to make asychronous requests by importing asyncio.
163
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
183
164
  ```python
184
165
  # Asynchronous Example
185
166
  import asyncio
@@ -192,12 +173,14 @@ async def main():
192
173
  api_key=os.getenv("MISTRAL_API_KEY", ""),
193
174
  ) as mistral:
194
175
 
195
- res = await mistral.chat.complete_async(model="mistral-small-latest", messages=[
176
+ res = await mistral.chat.complete_async(model="mistral-large-latest", messages=[
196
177
  {
197
178
  "content": "Who is the best French painter? Answer in one short sentence.",
198
179
  "role": "user",
199
180
  },
200
- ], stream=False)
181
+ ], stream=False, response_format={
182
+ "type": "text",
183
+ })
201
184
 
202
185
  # Handle response
203
186
  print(res)
@@ -230,7 +213,7 @@ with Mistral(
230
213
 
231
214
  </br>
232
215
 
233
- The same SDK client can also be used to make asychronous requests by importing asyncio.
216
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
234
217
  ```python
235
218
  # Asynchronous Example
236
219
  import asyncio
@@ -273,7 +256,9 @@ with Mistral(
273
256
  "content": "Who is the best French painter? Answer in one short sentence.",
274
257
  "role": "user",
275
258
  },
276
- ], agent_id="<id>", stream=False)
259
+ ], agent_id="<id>", stream=False, response_format={
260
+ "type": "text",
261
+ })
277
262
 
278
263
  # Handle response
279
264
  print(res)
@@ -281,7 +266,7 @@ with Mistral(
281
266
 
282
267
  </br>
283
268
 
284
- The same SDK client can also be used to make asychronous requests by importing asyncio.
269
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
285
270
  ```python
286
271
  # Asynchronous Example
287
272
  import asyncio
@@ -299,7 +284,9 @@ async def main():
299
284
  "content": "Who is the best French painter? Answer in one short sentence.",
300
285
  "role": "user",
301
286
  },
302
- ], agent_id="<id>", stream=False)
287
+ ], agent_id="<id>", stream=False, response_format={
288
+ "type": "text",
289
+ })
303
290
 
304
291
  # Handle response
305
292
  print(res)
@@ -332,7 +319,7 @@ with Mistral(
332
319
 
333
320
  </br>
334
321
 
335
- The same SDK client can also be used to make asychronous requests by importing asyncio.
322
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
336
323
  ```python
337
324
  # Asynchronous Example
338
325
  import asyncio
@@ -469,7 +456,7 @@ The documentation for the GCP SDK is available [here](https://github.com/mistral
469
456
  #### [audio.transcriptions](https://github.com/mistralai/client-python/blob/master/docs/sdks/transcriptions/README.md)
470
457
 
471
458
  * [complete](https://github.com/mistralai/client-python/blob/master/docs/sdks/transcriptions/README.md#complete) - Create Transcription
472
- * [stream](https://github.com/mistralai/client-python/blob/master/docs/sdks/transcriptions/README.md#stream) - Create streaming transcription (SSE)
459
+ * [stream](https://github.com/mistralai/client-python/blob/master/docs/sdks/transcriptions/README.md#stream) - Create Streaming Transcription (SSE)
473
460
 
474
461
  ### [batch](https://github.com/mistralai/client-python/blob/master/docs/sdks/batch/README.md)
475
462
 
@@ -490,6 +477,7 @@ The documentation for the GCP SDK is available [here](https://github.com/mistral
490
477
  * [list](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#list) - List agent entities.
491
478
  * [get](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#get) - Retrieve an agent entity.
492
479
  * [update](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#update) - Update an agent entity.
480
+ * [delete](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#delete) - Delete an agent entity.
493
481
  * [update_version](https://github.com/mistralai/client-python/blob/master/docs/sdks/mistralagents/README.md#update_version) - Update an agent version.
494
482
 
495
483
  #### [beta.conversations](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md)
@@ -497,6 +485,7 @@ The documentation for the GCP SDK is available [here](https://github.com/mistral
497
485
  * [start](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#start) - Create a conversation and append entries to it.
498
486
  * [list](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#list) - List all created conversations.
499
487
  * [get](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#get) - Retrieve a conversation information.
488
+ * [delete](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#delete) - Delete a conversation.
500
489
  * [append](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#append) - Append new entries to an existing conversation.
501
490
  * [get_history](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#get_history) - Retrieve all entries in a conversation.
502
491
  * [get_messages](https://github.com/mistralai/client-python/blob/master/docs/sdks/conversations/README.md#get_messages) - Retrieve all messages in a conversation.
@@ -521,7 +510,7 @@ The documentation for the GCP SDK is available [here](https://github.com/mistral
521
510
 
522
511
  #### [beta.libraries.documents](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md)
523
512
 
524
- * [list](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#list) - List document in a given library.
513
+ * [list](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#list) - List documents in a given library.
525
514
  * [upload](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#upload) - Upload a new document.
526
515
  * [get](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#get) - Retrieve the metadata of a specific document.
527
516
  * [update](https://github.com/mistralai/client-python/blob/master/docs/sdks/documents/README.md#update) - Update the metadata of a specific document.
@@ -618,7 +607,11 @@ with Mistral(
618
607
  "tool_call_id": "<id>",
619
608
  "result": "<value>",
620
609
  },
621
- ], stream=True)
610
+ ], stream=True, completion_args={
611
+ "response_format": {
612
+ "type": "text",
613
+ },
614
+ })
622
615
 
623
616
  with res as event_stream:
624
617
  for event in event_stream:
@@ -709,27 +702,20 @@ with Mistral(
709
702
  <!-- Start Error Handling [errors] -->
710
703
  ## Error Handling
711
704
 
712
- Handling errors in this SDK should largely match your expectations. All operations return a response object or raise an exception.
713
-
714
- By default, an API error will raise a models.SDKError exception, which has the following properties:
715
-
716
- | Property | Type | Description |
717
- |-----------------|------------------|-----------------------|
718
- | `.status_code` | *int* | The HTTP status code |
719
- | `.message` | *str* | The error message |
720
- | `.raw_response` | *httpx.Response* | The raw HTTP response |
721
- | `.body` | *str* | The response content |
705
+ [`MistralError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/mistralerror.py) is the base class for all HTTP error responses. It has the following properties:
722
706
 
723
- When custom error responses are specified for an operation, the SDK may also raise their associated exceptions. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `list_async` method may raise the following exceptions:
724
-
725
- | Error Type | Status Code | Content Type |
726
- | -------------------------- | ----------- | ---------------- |
727
- | models.HTTPValidationError | 422 | application/json |
728
- | models.SDKError | 4XX, 5XX | \*/\* |
707
+ | Property | Type | Description |
708
+ | ------------------ | ---------------- | --------------------------------------------------------------------------------------- |
709
+ | `err.message` | `str` | Error message |
710
+ | `err.status_code` | `int` | HTTP response status code eg `404` |
711
+ | `err.headers` | `httpx.Headers` | HTTP response headers |
712
+ | `err.body` | `str` | HTTP body. Can be empty string if no body is returned. |
713
+ | `err.raw_response` | `httpx.Response` | Raw HTTP response |
714
+ | `err.data` | | Optional. Some errors may contain structured data. [See Error Classes](https://github.com/mistralai/client-python/blob/master/#error-classes). |
729
715
 
730
716
  ### Example
731
-
732
717
  ```python
718
+ import mistralai
733
719
  from mistralai import Mistral, models
734
720
  import os
735
721
 
@@ -740,18 +726,46 @@ with Mistral(
740
726
  res = None
741
727
  try:
742
728
 
743
- res = mistral.models.list()
729
+ res = mistral.models.retrieve(model_id="ft:open-mistral-7b:587a6b29:20240514:7e773925")
744
730
 
745
731
  # Handle response
746
732
  print(res)
747
733
 
748
- except models.HTTPValidationError as e:
749
- # handle e.data: models.HTTPValidationErrorData
750
- raise(e)
751
- except models.SDKError as e:
752
- # handle exception
753
- raise(e)
734
+
735
+ except models.MistralError as e:
736
+ # The base class for HTTP error responses
737
+ print(e.message)
738
+ print(e.status_code)
739
+ print(e.body)
740
+ print(e.headers)
741
+ print(e.raw_response)
742
+
743
+ # Depending on the method different errors may be thrown
744
+ if isinstance(e, models.HTTPValidationError):
745
+ print(e.data.detail) # Optional[List[mistralai.ValidationError]]
754
746
  ```
747
+
748
+ ### Error Classes
749
+ **Primary error:**
750
+ * [`MistralError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/mistralerror.py): The base class for HTTP error responses.
751
+
752
+ <details><summary>Less common errors (6)</summary>
753
+
754
+ <br />
755
+
756
+ **Network errors:**
757
+ * [`httpx.RequestError`](https://www.python-httpx.org/exceptions/#httpx.RequestError): Base class for request errors.
758
+ * [`httpx.ConnectError`](https://www.python-httpx.org/exceptions/#httpx.ConnectError): HTTP client was unable to make a request to a server.
759
+ * [`httpx.TimeoutException`](https://www.python-httpx.org/exceptions/#httpx.TimeoutException): HTTP request timed out.
760
+
761
+
762
+ **Inherit from [`MistralError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/mistralerror.py)**:
763
+ * [`HTTPValidationError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/httpvalidationerror.py): Validation Error. Status code `422`. Applicable to 48 of 70 methods.*
764
+ * [`ResponseValidationError`](https://github.com/mistralai/client-python/blob/master/./src/mistralai/models/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.
765
+
766
+ </details>
767
+
768
+ \* Check [the method documentation](https://github.com/mistralai/client-python/blob/master/#available-resources-and-operations) to see if the error is applicable.
755
769
  <!-- End Error Handling [errors] -->
756
770
 
757
771
  <!-- Start Server Selection [server] -->
@@ -977,4 +991,4 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
977
991
  ## Contributions
978
992
 
979
993
  While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation.
980
- We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
994
+ We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mistralai"
3
- version = "1.9.10"
3
+ version = "1.10.0"
4
4
  description = "Python Client SDK for the Mistral AI API."
5
5
  authors = [{ name = "Mistral" },]
6
6
  readme = "README-PYPI.md"
@@ -13,6 +13,10 @@ dependencies = [
13
13
  "typing-inspection >=0.4.0",
14
14
  "pyyaml (>=6.0.2,<7.0.0)",
15
15
  "invoke (>=2.2.0,<3.0.0)",
16
+ "opentelemetry-sdk (>=1.33.1,<2.0.0)",
17
+ "opentelemetry-api (>=1.33.1,<2.0.0)",
18
+ "opentelemetry-exporter-otlp-proto-http (>=1.37.0,<2.0.0)",
19
+ "opentelemetry-semantic-conventions (>=0.59b0,<0.60)",
16
20
  ]
17
21
 
18
22
  [tool.poetry]
@@ -1,5 +1,6 @@
1
1
  from .custom_user_agent import CustomUserAgentHook
2
2
  from .deprecation_warning import DeprecationWarningHook
3
+ from .tracing import TracingHook
3
4
  from .types import Hooks
4
5
 
5
6
  # This file is only ever generated once on the first generation and then is free to be modified.
@@ -13,5 +14,9 @@ def init_hooks(hooks: Hooks):
13
14
  with an instance of a hook that implements that specific Hook interface
14
15
  Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance
15
16
  """
17
+ tracing_hook = TracingHook()
16
18
  hooks.register_before_request_hook(CustomUserAgentHook())
17
19
  hooks.register_after_success_hook(DeprecationWarningHook())
20
+ hooks.register_after_success_hook(tracing_hook)
21
+ hooks.register_before_request_hook(tracing_hook)
22
+ hooks.register_after_error_hook(tracing_hook)
@@ -0,0 +1,50 @@
1
+ import logging
2
+ from typing import Optional, Tuple, Union
3
+
4
+ import httpx
5
+ from opentelemetry.trace import Span
6
+
7
+ from ..extra.observability.otel import (
8
+ get_or_create_otel_tracer,
9
+ get_response_and_error,
10
+ get_traced_request_and_span,
11
+ get_traced_response,
12
+ )
13
+ from .types import (
14
+ AfterErrorContext,
15
+ AfterErrorHook,
16
+ AfterSuccessContext,
17
+ AfterSuccessHook,
18
+ BeforeRequestContext,
19
+ BeforeRequestHook,
20
+ )
21
+
22
+ logger = logging.getLogger(__name__)
23
+
24
+
25
+ class TracingHook(BeforeRequestHook, AfterSuccessHook, AfterErrorHook):
26
+ def __init__(self) -> None:
27
+ self.tracing_enabled, self.tracer = get_or_create_otel_tracer()
28
+ self.request_span: Optional[Span] = None
29
+
30
+ def before_request(
31
+ self, hook_ctx: BeforeRequestContext, request: httpx.Request
32
+ ) -> Union[httpx.Request, Exception]:
33
+ request, self.request_span = get_traced_request_and_span(tracing_enabled=self.tracing_enabled, tracer=self.tracer, span=self.request_span, operation_id=hook_ctx.operation_id, request=request)
34
+ return request
35
+
36
+ def after_success(
37
+ self, hook_ctx: AfterSuccessContext, response: httpx.Response
38
+ ) -> Union[httpx.Response, Exception]:
39
+ response = get_traced_response(tracing_enabled=self.tracing_enabled, tracer=self.tracer, span=self.request_span, operation_id=hook_ctx.operation_id, response=response)
40
+ return response
41
+
42
+ def after_error(
43
+ self,
44
+ hook_ctx: AfterErrorContext,
45
+ response: Optional[httpx.Response],
46
+ error: Optional[Exception],
47
+ ) -> Union[Tuple[Optional[httpx.Response], Optional[Exception]], Exception]:
48
+ if response:
49
+ response, error = get_response_and_error(tracing_enabled=self.tracing_enabled, tracer=self.tracer, span=self.request_span, operation_id=hook_ctx.operation_id, response=response, error=error)
50
+ return response, error