mistralai 1.10.1__py3-none-any.whl → 1.11.1__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 (233) hide show
  1. mistralai/_version.py +3 -3
  2. mistralai/accesses.py +22 -12
  3. mistralai/agents.py +88 -44
  4. mistralai/basesdk.py +6 -0
  5. mistralai/chat.py +96 -40
  6. mistralai/classifiers.py +35 -22
  7. mistralai/conversations.py +186 -64
  8. mistralai/documents.py +72 -26
  9. mistralai/embeddings.py +17 -8
  10. mistralai/files.py +58 -24
  11. mistralai/fim.py +20 -12
  12. mistralai/httpclient.py +0 -1
  13. mistralai/jobs.py +65 -26
  14. mistralai/libraries.py +20 -10
  15. mistralai/mistral_agents.py +438 -30
  16. mistralai/mistral_jobs.py +33 -14
  17. mistralai/models/__init__.py +16 -0
  18. mistralai/models/agent.py +1 -1
  19. mistralai/models/agentconversation.py +1 -1
  20. mistralai/models/agenthandoffdoneevent.py +1 -1
  21. mistralai/models/agenthandoffentry.py +3 -2
  22. mistralai/models/agenthandoffstartedevent.py +1 -1
  23. mistralai/models/agents_api_v1_agents_get_versionop.py +21 -0
  24. mistralai/models/agents_api_v1_agents_list_versionsop.py +33 -0
  25. mistralai/models/agents_api_v1_agents_listop.py +4 -0
  26. mistralai/models/agentscompletionrequest.py +2 -5
  27. mistralai/models/agentscompletionstreamrequest.py +2 -5
  28. mistralai/models/archiveftmodelout.py +1 -1
  29. mistralai/models/assistantmessage.py +1 -1
  30. mistralai/models/audiochunk.py +1 -1
  31. mistralai/models/audioencoding.py +6 -1
  32. mistralai/models/audioformat.py +2 -4
  33. mistralai/models/basemodelcard.py +1 -1
  34. mistralai/models/batchjobin.py +2 -4
  35. mistralai/models/batchjobout.py +1 -1
  36. mistralai/models/batchjobsout.py +1 -1
  37. mistralai/models/chatcompletionchoice.py +10 -5
  38. mistralai/models/chatcompletionrequest.py +2 -5
  39. mistralai/models/chatcompletionstreamrequest.py +2 -5
  40. mistralai/models/classifierdetailedjobout.py +4 -2
  41. mistralai/models/classifierftmodelout.py +3 -2
  42. mistralai/models/classifierjobout.py +4 -2
  43. mistralai/models/codeinterpretertool.py +1 -1
  44. mistralai/models/completiondetailedjobout.py +5 -2
  45. mistralai/models/completionftmodelout.py +3 -2
  46. mistralai/models/completionjobout.py +5 -2
  47. mistralai/models/completionresponsestreamchoice.py +9 -8
  48. mistralai/models/conversationappendrequest.py +4 -1
  49. mistralai/models/conversationappendstreamrequest.py +4 -1
  50. mistralai/models/conversationhistory.py +2 -1
  51. mistralai/models/conversationmessages.py +1 -1
  52. mistralai/models/conversationrequest.py +5 -1
  53. mistralai/models/conversationresponse.py +2 -1
  54. mistralai/models/conversationrestartrequest.py +4 -1
  55. mistralai/models/conversationrestartstreamrequest.py +4 -1
  56. mistralai/models/conversationstreamrequest.py +5 -1
  57. mistralai/models/documentlibrarytool.py +1 -1
  58. mistralai/models/documenturlchunk.py +1 -1
  59. mistralai/models/embeddingdtype.py +7 -1
  60. mistralai/models/encodingformat.py +4 -1
  61. mistralai/models/entitytype.py +8 -1
  62. mistralai/models/filepurpose.py +8 -1
  63. mistralai/models/files_api_routes_list_filesop.py +4 -11
  64. mistralai/models/files_api_routes_upload_fileop.py +2 -6
  65. mistralai/models/fileschema.py +3 -5
  66. mistralai/models/finetuneablemodeltype.py +4 -1
  67. mistralai/models/ftclassifierlossfunction.py +4 -1
  68. mistralai/models/ftmodelcard.py +1 -1
  69. mistralai/models/functioncallentry.py +3 -2
  70. mistralai/models/functioncallevent.py +1 -1
  71. mistralai/models/functionresultentry.py +3 -2
  72. mistralai/models/functiontool.py +1 -1
  73. mistralai/models/githubrepositoryin.py +1 -1
  74. mistralai/models/githubrepositoryout.py +1 -1
  75. mistralai/models/httpvalidationerror.py +4 -2
  76. mistralai/models/imagegenerationtool.py +1 -1
  77. mistralai/models/imageurlchunk.py +1 -1
  78. mistralai/models/jobsout.py +1 -1
  79. mistralai/models/legacyjobmetadataout.py +1 -1
  80. mistralai/models/messageinputentry.py +9 -3
  81. mistralai/models/messageoutputentry.py +6 -3
  82. mistralai/models/messageoutputevent.py +4 -2
  83. mistralai/models/mistralerror.py +11 -7
  84. mistralai/models/mistralpromptmode.py +1 -1
  85. mistralai/models/modelconversation.py +1 -1
  86. mistralai/models/no_response_error.py +5 -1
  87. mistralai/models/ocrrequest.py +11 -1
  88. mistralai/models/ocrtableobject.py +4 -1
  89. mistralai/models/referencechunk.py +1 -1
  90. mistralai/models/requestsource.py +5 -1
  91. mistralai/models/responsedoneevent.py +1 -1
  92. mistralai/models/responseerrorevent.py +1 -1
  93. mistralai/models/responseformats.py +5 -1
  94. mistralai/models/responsestartedevent.py +1 -1
  95. mistralai/models/responsevalidationerror.py +2 -0
  96. mistralai/models/retrievefileout.py +3 -5
  97. mistralai/models/sampletype.py +7 -1
  98. mistralai/models/sdkerror.py +2 -0
  99. mistralai/models/shareenum.py +7 -1
  100. mistralai/models/sharingdelete.py +2 -4
  101. mistralai/models/sharingin.py +3 -5
  102. mistralai/models/source.py +8 -1
  103. mistralai/models/systemmessage.py +1 -1
  104. mistralai/models/textchunk.py +1 -1
  105. mistralai/models/thinkchunk.py +1 -1
  106. mistralai/models/timestampgranularity.py +1 -1
  107. mistralai/models/tool.py +2 -6
  108. mistralai/models/toolcall.py +2 -6
  109. mistralai/models/toolchoice.py +2 -6
  110. mistralai/models/toolchoiceenum.py +6 -1
  111. mistralai/models/toolexecutiondeltaevent.py +2 -1
  112. mistralai/models/toolexecutiondoneevent.py +2 -1
  113. mistralai/models/toolexecutionentry.py +4 -2
  114. mistralai/models/toolexecutionstartedevent.py +2 -1
  115. mistralai/models/toolfilechunk.py +2 -1
  116. mistralai/models/toolmessage.py +1 -1
  117. mistralai/models/toolreferencechunk.py +2 -1
  118. mistralai/models/tooltypes.py +1 -1
  119. mistralai/models/transcriptionsegmentchunk.py +1 -1
  120. mistralai/models/transcriptionstreamdone.py +1 -1
  121. mistralai/models/transcriptionstreamlanguage.py +1 -1
  122. mistralai/models/transcriptionstreamsegmentdelta.py +1 -1
  123. mistralai/models/transcriptionstreamtextdelta.py +1 -1
  124. mistralai/models/unarchiveftmodelout.py +1 -1
  125. mistralai/models/uploadfileout.py +3 -5
  126. mistralai/models/usermessage.py +1 -1
  127. mistralai/models/wandbintegration.py +1 -1
  128. mistralai/models/wandbintegrationout.py +1 -1
  129. mistralai/models/websearchpremiumtool.py +1 -1
  130. mistralai/models/websearchtool.py +1 -1
  131. mistralai/models_.py +24 -12
  132. mistralai/ocr.py +38 -10
  133. mistralai/sdk.py +2 -2
  134. mistralai/transcriptions.py +28 -12
  135. mistralai/types/basemodel.py +41 -3
  136. mistralai/utils/__init__.py +0 -3
  137. mistralai/utils/annotations.py +32 -8
  138. mistralai/utils/enums.py +60 -0
  139. mistralai/utils/forms.py +21 -10
  140. mistralai/utils/queryparams.py +14 -2
  141. mistralai/utils/requestbodies.py +3 -3
  142. mistralai/utils/retries.py +69 -5
  143. mistralai/utils/serializers.py +0 -20
  144. mistralai/utils/unmarshal_json_response.py +15 -1
  145. {mistralai-1.10.1.dist-info → mistralai-1.11.1.dist-info}/METADATA +24 -31
  146. {mistralai-1.10.1.dist-info → mistralai-1.11.1.dist-info}/RECORD +233 -230
  147. mistralai_azure/_version.py +3 -3
  148. mistralai_azure/basesdk.py +6 -0
  149. mistralai_azure/chat.py +27 -15
  150. mistralai_azure/httpclient.py +0 -1
  151. mistralai_azure/models/__init__.py +16 -1
  152. mistralai_azure/models/assistantmessage.py +1 -1
  153. mistralai_azure/models/chatcompletionchoice.py +10 -7
  154. mistralai_azure/models/chatcompletionrequest.py +8 -6
  155. mistralai_azure/models/chatcompletionstreamrequest.py +8 -6
  156. mistralai_azure/models/completionresponsestreamchoice.py +11 -7
  157. mistralai_azure/models/documenturlchunk.py +1 -1
  158. mistralai_azure/models/httpvalidationerror.py +4 -2
  159. mistralai_azure/models/imageurlchunk.py +1 -1
  160. mistralai_azure/models/mistralazureerror.py +11 -7
  161. mistralai_azure/models/mistralpromptmode.py +1 -1
  162. mistralai_azure/models/no_response_error.py +5 -1
  163. mistralai_azure/models/ocrpageobject.py +32 -5
  164. mistralai_azure/models/ocrrequest.py +20 -1
  165. mistralai_azure/models/ocrtableobject.py +34 -0
  166. mistralai_azure/models/referencechunk.py +1 -1
  167. mistralai_azure/models/responseformats.py +5 -1
  168. mistralai_azure/models/responsevalidationerror.py +2 -0
  169. mistralai_azure/models/sdkerror.py +2 -0
  170. mistralai_azure/models/systemmessage.py +1 -1
  171. mistralai_azure/models/textchunk.py +1 -1
  172. mistralai_azure/models/thinkchunk.py +1 -1
  173. mistralai_azure/models/tool.py +2 -6
  174. mistralai_azure/models/toolcall.py +2 -6
  175. mistralai_azure/models/toolchoice.py +2 -6
  176. mistralai_azure/models/toolchoiceenum.py +6 -1
  177. mistralai_azure/models/toolmessage.py +1 -1
  178. mistralai_azure/models/tooltypes.py +1 -1
  179. mistralai_azure/models/usermessage.py +1 -1
  180. mistralai_azure/ocr.py +26 -6
  181. mistralai_azure/types/basemodel.py +41 -3
  182. mistralai_azure/utils/__init__.py +0 -3
  183. mistralai_azure/utils/annotations.py +32 -8
  184. mistralai_azure/utils/enums.py +60 -0
  185. mistralai_azure/utils/forms.py +21 -10
  186. mistralai_azure/utils/queryparams.py +14 -2
  187. mistralai_azure/utils/requestbodies.py +3 -3
  188. mistralai_azure/utils/retries.py +69 -5
  189. mistralai_azure/utils/serializers.py +0 -20
  190. mistralai_azure/utils/unmarshal_json_response.py +15 -1
  191. mistralai_gcp/_version.py +3 -3
  192. mistralai_gcp/basesdk.py +6 -0
  193. mistralai_gcp/chat.py +27 -15
  194. mistralai_gcp/fim.py +27 -15
  195. mistralai_gcp/httpclient.py +0 -1
  196. mistralai_gcp/models/assistantmessage.py +1 -1
  197. mistralai_gcp/models/chatcompletionchoice.py +10 -7
  198. mistralai_gcp/models/chatcompletionrequest.py +8 -6
  199. mistralai_gcp/models/chatcompletionstreamrequest.py +8 -6
  200. mistralai_gcp/models/completionresponsestreamchoice.py +11 -7
  201. mistralai_gcp/models/fimcompletionrequest.py +6 -1
  202. mistralai_gcp/models/fimcompletionstreamrequest.py +6 -1
  203. mistralai_gcp/models/httpvalidationerror.py +4 -2
  204. mistralai_gcp/models/imageurlchunk.py +1 -1
  205. mistralai_gcp/models/mistralgcperror.py +11 -7
  206. mistralai_gcp/models/mistralpromptmode.py +1 -1
  207. mistralai_gcp/models/no_response_error.py +5 -1
  208. mistralai_gcp/models/referencechunk.py +1 -1
  209. mistralai_gcp/models/responseformats.py +5 -1
  210. mistralai_gcp/models/responsevalidationerror.py +2 -0
  211. mistralai_gcp/models/sdkerror.py +2 -0
  212. mistralai_gcp/models/systemmessage.py +1 -1
  213. mistralai_gcp/models/textchunk.py +1 -1
  214. mistralai_gcp/models/thinkchunk.py +1 -1
  215. mistralai_gcp/models/tool.py +2 -6
  216. mistralai_gcp/models/toolcall.py +2 -6
  217. mistralai_gcp/models/toolchoice.py +2 -6
  218. mistralai_gcp/models/toolchoiceenum.py +6 -1
  219. mistralai_gcp/models/toolmessage.py +1 -1
  220. mistralai_gcp/models/tooltypes.py +1 -1
  221. mistralai_gcp/models/usermessage.py +1 -1
  222. mistralai_gcp/types/basemodel.py +41 -3
  223. mistralai_gcp/utils/__init__.py +0 -3
  224. mistralai_gcp/utils/annotations.py +32 -8
  225. mistralai_gcp/utils/enums.py +60 -0
  226. mistralai_gcp/utils/forms.py +21 -10
  227. mistralai_gcp/utils/queryparams.py +14 -2
  228. mistralai_gcp/utils/requestbodies.py +3 -3
  229. mistralai_gcp/utils/retries.py +69 -5
  230. mistralai_gcp/utils/serializers.py +0 -20
  231. mistralai_gcp/utils/unmarshal_json_response.py +15 -1
  232. {mistralai-1.10.1.dist-info → mistralai-1.11.1.dist-info}/WHEEL +0 -0
  233. {mistralai-1.10.1.dist-info → mistralai-1.11.1.dist-info}/licenses/LICENSE +0 -0
@@ -27,16 +27,18 @@ ClassifierJobOutStatus = Literal[
27
27
  ]
28
28
  r"""The current status of the fine-tuning job."""
29
29
 
30
- ClassifierJobOutObject = Literal["job"]
30
+
31
+ ClassifierJobOutObject = Literal["job",]
31
32
  r"""The object type of the fine-tuning job."""
32
33
 
34
+
33
35
  ClassifierJobOutIntegrationsTypedDict = WandbIntegrationOutTypedDict
34
36
 
35
37
 
36
38
  ClassifierJobOutIntegrations = WandbIntegrationOut
37
39
 
38
40
 
39
- ClassifierJobOutJobType = Literal["classifier"]
41
+ ClassifierJobOutJobType = Literal["classifier",]
40
42
  r"""The type of job (`FT` for fine-tuning)."""
41
43
 
42
44
 
@@ -6,7 +6,7 @@ from typing import Literal, Optional
6
6
  from typing_extensions import NotRequired, TypedDict
7
7
 
8
8
 
9
- CodeInterpreterToolType = Literal["code_interpreter"]
9
+ CodeInterpreterToolType = Literal["code_interpreter",]
10
10
 
11
11
 
12
12
  class CodeInterpreterToolTypedDict(TypedDict):
@@ -29,7 +29,9 @@ CompletionDetailedJobOutStatus = Literal[
29
29
  "CANCELLATION_REQUESTED",
30
30
  ]
31
31
 
32
- CompletionDetailedJobOutObject = Literal["job"]
32
+
33
+ CompletionDetailedJobOutObject = Literal["job",]
34
+
33
35
 
34
36
  CompletionDetailedJobOutIntegrationsTypedDict = WandbIntegrationOutTypedDict
35
37
 
@@ -37,7 +39,8 @@ CompletionDetailedJobOutIntegrationsTypedDict = WandbIntegrationOutTypedDict
37
39
  CompletionDetailedJobOutIntegrations = WandbIntegrationOut
38
40
 
39
41
 
40
- CompletionDetailedJobOutJobType = Literal["completion"]
42
+ CompletionDetailedJobOutJobType = Literal["completion",]
43
+
41
44
 
42
45
  CompletionDetailedJobOutRepositoriesTypedDict = GithubRepositoryOutTypedDict
43
46
 
@@ -11,9 +11,10 @@ from typing import List, Literal, Optional
11
11
  from typing_extensions import NotRequired, TypedDict
12
12
 
13
13
 
14
- CompletionFTModelOutObject = Literal["model"]
14
+ CompletionFTModelOutObject = Literal["model",]
15
15
 
16
- ModelType = Literal["completion"]
16
+
17
+ ModelType = Literal["completion",]
17
18
 
18
19
 
19
20
  class CompletionFTModelOutTypedDict(TypedDict):
@@ -28,18 +28,21 @@ Status = Literal[
28
28
  ]
29
29
  r"""The current status of the fine-tuning job."""
30
30
 
31
- CompletionJobOutObject = Literal["job"]
31
+
32
+ CompletionJobOutObject = Literal["job",]
32
33
  r"""The object type of the fine-tuning job."""
33
34
 
35
+
34
36
  IntegrationsTypedDict = WandbIntegrationOutTypedDict
35
37
 
36
38
 
37
39
  Integrations = WandbIntegrationOut
38
40
 
39
41
 
40
- JobType = Literal["completion"]
42
+ JobType = Literal["completion",]
41
43
  r"""The type of job (`FT` for fine-tuning)."""
42
44
 
45
+
43
46
  RepositoriesTypedDict = GithubRepositoryOutTypedDict
44
47
 
45
48
 
@@ -3,15 +3,19 @@
3
3
  from __future__ import annotations
4
4
  from .deltamessage import DeltaMessage, DeltaMessageTypedDict
5
5
  from mistralai.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr
6
- from mistralai.utils import validate_open_enum
7
6
  from pydantic import model_serializer
8
- from pydantic.functional_validators import PlainValidator
9
7
  from typing import Literal, Union
10
- from typing_extensions import Annotated, TypedDict
8
+ from typing_extensions import TypedDict
11
9
 
12
10
 
13
11
  CompletionResponseStreamChoiceFinishReason = Union[
14
- Literal["stop", "length", "error", "tool_calls"], UnrecognizedStr
12
+ Literal[
13
+ "stop",
14
+ "length",
15
+ "error",
16
+ "tool_calls",
17
+ ],
18
+ UnrecognizedStr,
15
19
  ]
16
20
 
17
21
 
@@ -26,10 +30,7 @@ class CompletionResponseStreamChoice(BaseModel):
26
30
 
27
31
  delta: DeltaMessage
28
32
 
29
- finish_reason: Annotated[
30
- Nullable[CompletionResponseStreamChoiceFinishReason],
31
- PlainValidator(validate_open_enum(False)),
32
- ]
33
+ finish_reason: Nullable[CompletionResponseStreamChoiceFinishReason]
33
34
 
34
35
  @model_serializer(mode="wrap")
35
36
  def serialize_model(self, handler):
@@ -8,7 +8,10 @@ from typing import Literal, Optional
8
8
  from typing_extensions import NotRequired, TypedDict
9
9
 
10
10
 
11
- ConversationAppendRequestHandoffExecution = Literal["client", "server"]
11
+ ConversationAppendRequestHandoffExecution = Literal[
12
+ "client",
13
+ "server",
14
+ ]
12
15
 
13
16
 
14
17
  class ConversationAppendRequestTypedDict(TypedDict):
@@ -8,7 +8,10 @@ from typing import Literal, Optional
8
8
  from typing_extensions import NotRequired, TypedDict
9
9
 
10
10
 
11
- ConversationAppendStreamRequestHandoffExecution = Literal["client", "server"]
11
+ ConversationAppendStreamRequestHandoffExecution = Literal[
12
+ "client",
13
+ "server",
14
+ ]
12
15
 
13
16
 
14
17
  class ConversationAppendStreamRequestTypedDict(TypedDict):
@@ -12,7 +12,8 @@ from typing import List, Literal, Optional, Union
12
12
  from typing_extensions import NotRequired, TypeAliasType, TypedDict
13
13
 
14
14
 
15
- ConversationHistoryObject = Literal["conversation.history"]
15
+ ConversationHistoryObject = Literal["conversation.history",]
16
+
16
17
 
17
18
  EntriesTypedDict = TypeAliasType(
18
19
  "EntriesTypedDict",
@@ -7,7 +7,7 @@ from typing import List, Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- ConversationMessagesObject = Literal["conversation.messages"]
10
+ ConversationMessagesObject = Literal["conversation.messages",]
11
11
 
12
12
 
13
13
  class ConversationMessagesTypedDict(TypedDict):
@@ -16,7 +16,11 @@ from typing import Any, Dict, List, Literal, Optional, Union
16
16
  from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
17
17
 
18
18
 
19
- HandoffExecution = Literal["client", "server"]
19
+ HandoffExecution = Literal[
20
+ "client",
21
+ "server",
22
+ ]
23
+
20
24
 
21
25
  ToolsTypedDict = TypeAliasType(
22
26
  "ToolsTypedDict",
@@ -11,7 +11,8 @@ from typing import List, Literal, Optional, Union
11
11
  from typing_extensions import NotRequired, TypeAliasType, TypedDict
12
12
 
13
13
 
14
- ConversationResponseObject = Literal["conversation.response"]
14
+ ConversationResponseObject = Literal["conversation.response",]
15
+
15
16
 
16
17
  OutputsTypedDict = TypeAliasType(
17
18
  "OutputsTypedDict",
@@ -9,7 +9,10 @@ from typing import Any, Dict, Literal, Optional
9
9
  from typing_extensions import NotRequired, TypedDict
10
10
 
11
11
 
12
- ConversationRestartRequestHandoffExecution = Literal["client", "server"]
12
+ ConversationRestartRequestHandoffExecution = Literal[
13
+ "client",
14
+ "server",
15
+ ]
13
16
 
14
17
 
15
18
  class ConversationRestartRequestTypedDict(TypedDict):
@@ -9,7 +9,10 @@ from typing import Any, Dict, Literal, Optional
9
9
  from typing_extensions import NotRequired, TypedDict
10
10
 
11
11
 
12
- ConversationRestartStreamRequestHandoffExecution = Literal["client", "server"]
12
+ ConversationRestartStreamRequestHandoffExecution = Literal[
13
+ "client",
14
+ "server",
15
+ ]
13
16
 
14
17
 
15
18
  class ConversationRestartStreamRequestTypedDict(TypedDict):
@@ -16,7 +16,11 @@ from typing import Any, Dict, List, Literal, Optional, Union
16
16
  from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
17
17
 
18
18
 
19
- ConversationStreamRequestHandoffExecution = Literal["client", "server"]
19
+ ConversationStreamRequestHandoffExecution = Literal[
20
+ "client",
21
+ "server",
22
+ ]
23
+
20
24
 
21
25
  ConversationStreamRequestToolsTypedDict = TypeAliasType(
22
26
  "ConversationStreamRequestToolsTypedDict",
@@ -6,7 +6,7 @@ from typing import List, Literal, Optional
6
6
  from typing_extensions import NotRequired, TypedDict
7
7
 
8
8
 
9
- DocumentLibraryToolType = Literal["document_library"]
9
+ DocumentLibraryToolType = Literal["document_library",]
10
10
 
11
11
 
12
12
  class DocumentLibraryToolTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- DocumentURLChunkType = Literal["document_url"]
10
+ DocumentURLChunkType = Literal["document_url",]
11
11
 
12
12
 
13
13
  class DocumentURLChunkTypedDict(TypedDict):
@@ -4,4 +4,10 @@ from __future__ import annotations
4
4
  from typing import Literal
5
5
 
6
6
 
7
- EmbeddingDtype = Literal["float", "int8", "uint8", "binary", "ubinary"]
7
+ EmbeddingDtype = Literal[
8
+ "float",
9
+ "int8",
10
+ "uint8",
11
+ "binary",
12
+ "ubinary",
13
+ ]
@@ -4,4 +4,7 @@ from __future__ import annotations
4
4
  from typing import Literal
5
5
 
6
6
 
7
- EncodingFormat = Literal["float", "base64"]
7
+ EncodingFormat = Literal[
8
+ "float",
9
+ "base64",
10
+ ]
@@ -5,5 +5,12 @@ from mistralai.types import UnrecognizedStr
5
5
  from typing import Literal, Union
6
6
 
7
7
 
8
- EntityType = Union[Literal["User", "Workspace", "Org"], UnrecognizedStr]
8
+ EntityType = Union[
9
+ Literal[
10
+ "User",
11
+ "Workspace",
12
+ "Org",
13
+ ],
14
+ UnrecognizedStr,
15
+ ]
9
16
  r"""The type of entity, used to share a library."""
@@ -5,4 +5,11 @@ from mistralai.types import UnrecognizedStr
5
5
  from typing import Literal, Union
6
6
 
7
7
 
8
- FilePurpose = Union[Literal["fine-tune", "batch", "ocr"], UnrecognizedStr]
8
+ FilePurpose = Union[
9
+ Literal[
10
+ "fine-tune",
11
+ "batch",
12
+ "ocr",
13
+ ],
14
+ UnrecognizedStr,
15
+ ]
@@ -5,9 +5,8 @@ from .filepurpose import FilePurpose
5
5
  from .sampletype import SampleType
6
6
  from .source import Source
7
7
  from mistralai.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
- from mistralai.utils import FieldMetadata, QueryParamMetadata, validate_open_enum
8
+ from mistralai.utils import FieldMetadata, QueryParamMetadata
9
9
  from pydantic import model_serializer
10
- from pydantic.functional_validators import PlainValidator
11
10
  from typing import List, Optional
12
11
  from typing_extensions import Annotated, NotRequired, TypedDict
13
12
 
@@ -39,16 +38,12 @@ class FilesAPIRoutesListFilesRequest(BaseModel):
39
38
  ] = True
40
39
 
41
40
  sample_type: Annotated[
42
- OptionalNullable[
43
- List[Annotated[SampleType, PlainValidator(validate_open_enum(False))]]
44
- ],
41
+ OptionalNullable[List[SampleType]],
45
42
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
46
43
  ] = UNSET
47
44
 
48
45
  source: Annotated[
49
- OptionalNullable[
50
- List[Annotated[Source, PlainValidator(validate_open_enum(False))]]
51
- ],
46
+ OptionalNullable[List[Source]],
52
47
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
53
48
  ] = UNSET
54
49
 
@@ -58,9 +53,7 @@ class FilesAPIRoutesListFilesRequest(BaseModel):
58
53
  ] = UNSET
59
54
 
60
55
  purpose: Annotated[
61
- Annotated[
62
- OptionalNullable[FilePurpose], PlainValidator(validate_open_enum(False))
63
- ],
56
+ OptionalNullable[FilePurpose],
64
57
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
65
58
  ] = UNSET
66
59
 
@@ -4,8 +4,7 @@ from __future__ import annotations
4
4
  from .file import File, FileTypedDict
5
5
  from .filepurpose import FilePurpose
6
6
  from mistralai.types import BaseModel
7
- from mistralai.utils import FieldMetadata, MultipartFormMetadata, validate_open_enum
8
- from pydantic.functional_validators import PlainValidator
7
+ from mistralai.utils import FieldMetadata, MultipartFormMetadata
9
8
  from typing import Optional
10
9
  from typing_extensions import Annotated, NotRequired, TypedDict
11
10
 
@@ -38,7 +37,4 @@ class FilesAPIRoutesUploadFileMultiPartBodyParams(BaseModel):
38
37
  ```
39
38
  """
40
39
 
41
- purpose: Annotated[
42
- Annotated[Optional[FilePurpose], PlainValidator(validate_open_enum(False))],
43
- FieldMetadata(multipart=True),
44
- ] = None
40
+ purpose: Annotated[Optional[FilePurpose], FieldMetadata(multipart=True)] = None
@@ -5,10 +5,8 @@ from .filepurpose import FilePurpose
5
5
  from .sampletype import SampleType
6
6
  from .source import Source
7
7
  from mistralai.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
- from mistralai.utils import validate_open_enum
9
8
  import pydantic
10
9
  from pydantic import model_serializer
11
- from pydantic.functional_validators import PlainValidator
12
10
  from typing_extensions import Annotated, NotRequired, TypedDict
13
11
 
14
12
 
@@ -47,11 +45,11 @@ class FileSchema(BaseModel):
47
45
  filename: str
48
46
  r"""The name of the uploaded file."""
49
47
 
50
- purpose: Annotated[FilePurpose, PlainValidator(validate_open_enum(False))]
48
+ purpose: FilePurpose
51
49
 
52
- sample_type: Annotated[SampleType, PlainValidator(validate_open_enum(False))]
50
+ sample_type: SampleType
53
51
 
54
- source: Annotated[Source, PlainValidator(validate_open_enum(False))]
52
+ source: Source
55
53
 
56
54
  num_lines: OptionalNullable[int] = UNSET
57
55
 
@@ -4,4 +4,7 @@ from __future__ import annotations
4
4
  from typing import Literal
5
5
 
6
6
 
7
- FineTuneableModelType = Literal["completion", "classifier"]
7
+ FineTuneableModelType = Literal[
8
+ "completion",
9
+ "classifier",
10
+ ]
@@ -4,4 +4,7 @@ from __future__ import annotations
4
4
  from typing import Literal
5
5
 
6
6
 
7
- FTClassifierLossFunction = Literal["single_class", "multi_class"]
7
+ FTClassifierLossFunction = Literal[
8
+ "single_class",
9
+ "multi_class",
10
+ ]
@@ -12,7 +12,7 @@ from typing import List, Literal, Optional
12
12
  from typing_extensions import Annotated, NotRequired, TypedDict
13
13
 
14
14
 
15
- FTModelCardType = Literal["fine-tuned"]
15
+ FTModelCardType = Literal["fine-tuned",]
16
16
 
17
17
 
18
18
  class FTModelCardTypedDict(TypedDict):
@@ -12,9 +12,10 @@ from typing import Literal, Optional
12
12
  from typing_extensions import NotRequired, TypedDict
13
13
 
14
14
 
15
- FunctionCallEntryObject = Literal["entry"]
15
+ FunctionCallEntryObject = Literal["entry",]
16
16
 
17
- FunctionCallEntryType = Literal["function.call"]
17
+
18
+ FunctionCallEntryType = Literal["function.call",]
18
19
 
19
20
 
20
21
  class FunctionCallEntryTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- FunctionCallEventType = Literal["function.call.delta"]
10
+ FunctionCallEventType = Literal["function.call.delta",]
11
11
 
12
12
 
13
13
  class FunctionCallEventTypedDict(TypedDict):
@@ -8,9 +8,10 @@ from typing import Literal, Optional
8
8
  from typing_extensions import NotRequired, TypedDict
9
9
 
10
10
 
11
- FunctionResultEntryObject = Literal["entry"]
11
+ FunctionResultEntryObject = Literal["entry",]
12
12
 
13
- FunctionResultEntryType = Literal["function.result"]
13
+
14
+ FunctionResultEntryType = Literal["function.result",]
14
15
 
15
16
 
16
17
  class FunctionResultEntryTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- FunctionToolType = Literal["function"]
10
+ FunctionToolType = Literal["function",]
11
11
 
12
12
 
13
13
  class FunctionToolTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- GithubRepositoryInType = Literal["github"]
10
+ GithubRepositoryInType = Literal["github",]
11
11
 
12
12
 
13
13
  class GithubRepositoryInTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- GithubRepositoryOutType = Literal["github"]
10
+ GithubRepositoryOutType = Literal["github",]
11
11
 
12
12
 
13
13
  class GithubRepositoryOutTypedDict(TypedDict):
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .validationerror import ValidationError
5
+ from dataclasses import dataclass, field
5
6
  import httpx
6
7
  from mistralai.models import MistralError
7
8
  from mistralai.types import BaseModel
@@ -12,8 +13,9 @@ class HTTPValidationErrorData(BaseModel):
12
13
  detail: Optional[List[ValidationError]] = None
13
14
 
14
15
 
16
+ @dataclass(unsafe_hash=True)
15
17
  class HTTPValidationError(MistralError):
16
- data: HTTPValidationErrorData
18
+ data: HTTPValidationErrorData = field(hash=False)
17
19
 
18
20
  def __init__(
19
21
  self,
@@ -23,4 +25,4 @@ class HTTPValidationError(MistralError):
23
25
  ):
24
26
  message = body or raw_response.text
25
27
  super().__init__(message, raw_response, body)
26
- self.data = data
28
+ object.__setattr__(self, "data", data)
@@ -6,7 +6,7 @@ from typing import Literal, Optional
6
6
  from typing_extensions import NotRequired, TypedDict
7
7
 
8
8
 
9
- ImageGenerationToolType = Literal["image_generation"]
9
+ ImageGenerationToolType = Literal["image_generation",]
10
10
 
11
11
 
12
12
  class ImageGenerationToolTypedDict(TypedDict):
@@ -15,7 +15,7 @@ ImageURLChunkImageURLTypedDict = TypeAliasType(
15
15
  ImageURLChunkImageURL = TypeAliasType("ImageURLChunkImageURL", Union[ImageURL, str])
16
16
 
17
17
 
18
- ImageURLChunkType = Literal["image_url"]
18
+ ImageURLChunkType = Literal["image_url",]
19
19
 
20
20
 
21
21
  class ImageURLChunkTypedDict(TypedDict):
@@ -24,7 +24,7 @@ JobsOutData = Annotated[
24
24
  ]
25
25
 
26
26
 
27
- JobsOutObject = Literal["list"]
27
+ JobsOutObject = Literal["list",]
28
28
 
29
29
 
30
30
  class JobsOutTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- LegacyJobMetadataOutObject = Literal["job.metadata"]
10
+ LegacyJobMetadataOutObject = Literal["job.metadata",]
11
11
 
12
12
 
13
13
  class LegacyJobMetadataOutTypedDict(TypedDict):
@@ -12,11 +12,17 @@ from typing import List, Literal, Optional, Union
12
12
  from typing_extensions import NotRequired, TypeAliasType, TypedDict
13
13
 
14
14
 
15
- Object = Literal["entry"]
15
+ Object = Literal["entry",]
16
16
 
17
- MessageInputEntryType = Literal["message.input"]
18
17
 
19
- MessageInputEntryRole = Literal["assistant", "user"]
18
+ MessageInputEntryType = Literal["message.input",]
19
+
20
+
21
+ MessageInputEntryRole = Literal[
22
+ "assistant",
23
+ "user",
24
+ ]
25
+
20
26
 
21
27
  MessageInputEntryContentTypedDict = TypeAliasType(
22
28
  "MessageInputEntryContentTypedDict",
@@ -12,11 +12,14 @@ from typing import List, Literal, Optional, Union
12
12
  from typing_extensions import NotRequired, TypeAliasType, TypedDict
13
13
 
14
14
 
15
- MessageOutputEntryObject = Literal["entry"]
15
+ MessageOutputEntryObject = Literal["entry",]
16
16
 
17
- MessageOutputEntryType = Literal["message.output"]
18
17
 
19
- MessageOutputEntryRole = Literal["assistant"]
18
+ MessageOutputEntryType = Literal["message.output",]
19
+
20
+
21
+ MessageOutputEntryRole = Literal["assistant",]
22
+
20
23
 
21
24
  MessageOutputEntryContentTypedDict = TypeAliasType(
22
25
  "MessageOutputEntryContentTypedDict",
@@ -9,9 +9,11 @@ from typing import Literal, Optional, Union
9
9
  from typing_extensions import NotRequired, TypeAliasType, TypedDict
10
10
 
11
11
 
12
- MessageOutputEventType = Literal["message.output.delta"]
12
+ MessageOutputEventType = Literal["message.output.delta",]
13
+
14
+
15
+ MessageOutputEventRole = Literal["assistant",]
13
16
 
14
- MessageOutputEventRole = Literal["assistant"]
15
17
 
16
18
  MessageOutputEventContentTypedDict = TypeAliasType(
17
19
  "MessageOutputEventContentTypedDict", Union[str, OutputContentChunksTypedDict]
@@ -2,25 +2,29 @@
2
2
 
3
3
  import httpx
4
4
  from typing import Optional
5
+ from dataclasses import dataclass, field
5
6
 
6
7
 
8
+ @dataclass(unsafe_hash=True)
7
9
  class MistralError(Exception):
8
10
  """The base class for all HTTP error responses."""
9
11
 
10
12
  message: str
11
13
  status_code: int
12
14
  body: str
13
- headers: httpx.Headers
14
- raw_response: httpx.Response
15
+ headers: httpx.Headers = field(hash=False)
16
+ raw_response: httpx.Response = field(hash=False)
15
17
 
16
18
  def __init__(
17
19
  self, message: str, raw_response: httpx.Response, body: Optional[str] = None
18
20
  ):
19
- self.message = message
20
- self.status_code = raw_response.status_code
21
- self.body = body if body is not None else raw_response.text
22
- self.headers = raw_response.headers
23
- self.raw_response = raw_response
21
+ object.__setattr__(self, "message", message)
22
+ object.__setattr__(self, "status_code", raw_response.status_code)
23
+ object.__setattr__(
24
+ self, "body", body if body is not None else raw_response.text
25
+ )
26
+ object.__setattr__(self, "headers", raw_response.headers)
27
+ object.__setattr__(self, "raw_response", raw_response)
24
28
 
25
29
  def __str__(self):
26
30
  return self.message