unique_sdk 0.10.20__tar.gz → 0.10.22__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 (43) hide show
  1. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/CHANGELOG.md +6 -0
  2. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/PKG-INFO +17 -5
  3. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/README.md +10 -4
  4. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/pyproject.toml +1 -1
  5. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_chat_completion.py +49 -0
  6. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_content.py +4 -3
  7. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/LICENSE +0 -0
  8. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/__init__.py +0 -0
  9. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_api_requestor.py +0 -0
  10. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_api_resource.py +0 -0
  11. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_api_version.py +0 -0
  12. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_error.py +0 -0
  13. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_http_client.py +0 -0
  14. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_list_object.py +0 -0
  15. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_object_classes.py +0 -0
  16. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_request_options.py +0 -0
  17. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_unique_object.py +0 -0
  18. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_unique_ql.py +0 -0
  19. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_unique_response.py +0 -0
  20. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_util.py +0 -0
  21. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_version.py +0 -0
  22. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/_webhook.py +0 -0
  23. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/__init__.py +0 -0
  24. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_acronyms.py +0 -0
  25. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_agentic_table.py +0 -0
  26. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_embedding.py +0 -0
  27. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_event.py +0 -0
  28. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_folder.py +0 -0
  29. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_integrated.py +0 -0
  30. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_mcp.py +0 -0
  31. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_message.py +0 -0
  32. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_message_assessment.py +0 -0
  33. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_message_execution.py +0 -0
  34. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_message_log.py +0 -0
  35. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_search.py +0 -0
  36. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_search_string.py +0 -0
  37. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_short_term_memory.py +0 -0
  38. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/api_resources/_space.py +0 -0
  39. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/utils/chat_history.py +0 -0
  40. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/utils/chat_in_space.py +0 -0
  41. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/utils/file_io.py +0 -0
  42. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/utils/sources.py +0 -0
  43. {unique_sdk-0.10.20 → unique_sdk-0.10.22}/unique_sdk/utils/token.py +0 -0
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.10.22] - 2025-09-12
9
+ - Add support for metadata update of a file.
10
+
11
+ ## [0.10.21] - 2025-09-04
12
+ - Update Chat Completions API types and add support for reasoning effort.
13
+
8
14
  ## [0.10.20] - 2025-09-04
9
15
  - Update Responses API types
10
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_sdk
3
- Version: 0.10.20
3
+ Version: 0.10.22
4
4
  Summary:
5
5
  License: MIT
6
6
  Author: Martin Fadler
@@ -565,11 +565,13 @@ Allows you to update a file specified by its `contentId`.
565
565
  Currently, the following updates are supported:
566
566
 
567
567
  Title update:
568
- - `title` optional, allows updating the title of the folder
568
+ - `title` optional, allows updating the title of the file
569
569
 
570
570
  Move the file to a different folder. this can be done by specifying either the `ownerId`.
571
571
  - `ownerId` optional, allows moving the file to a different folder. Represents the new folder for the file and it should be the id of a folder e.g.: `scope_dhjfieurfloakmdle`.
572
572
 
573
+ Metadata update:
574
+ - `metadata` optional, allows updating the metadata of the file. Default metadata can not be ovrriden. (Available with release >.40)
573
575
 
574
576
  Example of moving a file specified by its content id.
575
577
 
@@ -578,7 +580,10 @@ unique_sdk.Content.update(
578
580
  user_id=user_id,
579
581
  company_id=company_id,
580
582
  contentId="cont_ok2343q5owbce80w78hudawu5",
581
- ownerId="scope_e68yz5asho7glfh7c7d041el"
583
+ ownerId="scope_e68yz5asho7glfh7c7d041el",
584
+ metadata={
585
+ "quarter": "q1",
586
+ }
582
587
  )
583
588
  ```
584
589
 
@@ -791,8 +796,9 @@ chat_completion = unique_sdk.ChatCompletion.create(
791
796
  {"role": "user", "content": "Hello!"},
792
797
  ],
793
798
  options={
794
- "temperature": 0.5
795
- } # optional
799
+ "temperature": 0.5, # optional
800
+ "reasoningEffort": "low", # optional
801
+ } # optional
796
802
  )
797
803
  ```
798
804
 
@@ -1577,6 +1583,12 @@ All notable changes to this project will be documented in this file.
1577
1583
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1578
1584
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
1579
1585
 
1586
+ ## [0.10.22] - 2025-09-12
1587
+ - Add support for metadata update of a file.
1588
+
1589
+ ## [0.10.21] - 2025-09-04
1590
+ - Update Chat Completions API types and add support for reasoning effort.
1591
+
1580
1592
  ## [0.10.20] - 2025-09-04
1581
1593
  - Update Responses API types
1582
1594
 
@@ -547,11 +547,13 @@ Allows you to update a file specified by its `contentId`.
547
547
  Currently, the following updates are supported:
548
548
 
549
549
  Title update:
550
- - `title` optional, allows updating the title of the folder
550
+ - `title` optional, allows updating the title of the file
551
551
 
552
552
  Move the file to a different folder. this can be done by specifying either the `ownerId`.
553
553
  - `ownerId` optional, allows moving the file to a different folder. Represents the new folder for the file and it should be the id of a folder e.g.: `scope_dhjfieurfloakmdle`.
554
554
 
555
+ Metadata update:
556
+ - `metadata` optional, allows updating the metadata of the file. Default metadata can not be ovrriden. (Available with release >.40)
555
557
 
556
558
  Example of moving a file specified by its content id.
557
559
 
@@ -560,7 +562,10 @@ unique_sdk.Content.update(
560
562
  user_id=user_id,
561
563
  company_id=company_id,
562
564
  contentId="cont_ok2343q5owbce80w78hudawu5",
563
- ownerId="scope_e68yz5asho7glfh7c7d041el"
565
+ ownerId="scope_e68yz5asho7glfh7c7d041el",
566
+ metadata={
567
+ "quarter": "q1",
568
+ }
564
569
  )
565
570
  ```
566
571
 
@@ -773,8 +778,9 @@ chat_completion = unique_sdk.ChatCompletion.create(
773
778
  {"role": "user", "content": "Hello!"},
774
779
  ],
775
780
  options={
776
- "temperature": 0.5
777
- } # optional
781
+ "temperature": 0.5, # optional
782
+ "reasoningEffort": "low", # optional
783
+ } # optional
778
784
  )
779
785
  ```
780
786
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_sdk"
3
- version = "0.10.20"
3
+ version = "0.10.22"
4
4
  description = ""
5
5
  authors = [
6
6
  "Martin Fadler <martin.fadler@unique.ch>",
@@ -1,10 +1,13 @@
1
1
  from typing import (
2
+ Any,
2
3
  ClassVar,
4
+ Dict,
3
5
  List,
4
6
  Literal,
5
7
  NotRequired,
6
8
  Optional,
7
9
  TypedDict,
10
+ Union,
8
11
  Unpack,
9
12
  cast,
10
13
  )
@@ -34,6 +37,51 @@ class ChatCompletionChoicesInner(TypedDict):
34
37
  class ChatCompletion(APIResource["ChatCompletion"]):
35
38
  OBJECT_NAME: ClassVar[Literal["openai.chat.completion"]] = "openai.chat.completion"
36
39
 
40
+ class FunctionDefinition(TypedDict, total=False):
41
+ name: str
42
+ description: Optional[str]
43
+ parameters: Optional[Dict[str, Any]]
44
+
45
+ class ChatCompletionsFunctionToolDefinition(TypedDict):
46
+ type: Literal["function"]
47
+ function: "ChatCompletion.FunctionDefinition"
48
+
49
+ class FunctionName(TypedDict):
50
+ name: str
51
+
52
+ class ChatCompletionsNamedFunctionToolSelectionName(TypedDict):
53
+ name: str
54
+
55
+ class ChatCompletionsNamedFunctionToolSelection(TypedDict):
56
+ type: Literal["function"]
57
+ function: "ChatCompletion.ChatCompletionsNamedFunctionToolSelectionName"
58
+
59
+ class ChatCompletionsTextResponseFormat(TypedDict, total=False):
60
+ type: Literal["text", "json_schema"]
61
+ json_schema: dict
62
+
63
+ class Options(TypedDict, total=False):
64
+ functions: NotRequired[List["ChatCompletion.FunctionDefinition"]]
65
+ reasoningEffort: NotRequired[Literal["low", "medium", "high", None]]
66
+ functionCall: NotRequired[
67
+ Union[Literal["auto", "none"], "ChatCompletion.FunctionName"]
68
+ ]
69
+ maxTokens: NotRequired[int]
70
+ temperature: NotRequired[float]
71
+ topP: NotRequired[float]
72
+ logitBias: NotRequired[Dict[str, float]]
73
+ user: NotRequired[str]
74
+ n: NotRequired[int]
75
+ stop: NotRequired[List[str]]
76
+ presencePenalty: NotRequired[float]
77
+ frequencyPenalty: NotRequired[float]
78
+ seed: NotRequired[int]
79
+ responseFormat: NotRequired["ChatCompletion.ChatCompletionsTextResponseFormat"]
80
+ tools: NotRequired[List["ChatCompletion.ChatCompletionsFunctionToolDefinition"]]
81
+ toolChoice: NotRequired[
82
+ "ChatCompletion.ChatCompletionsNamedFunctionToolSelection"
83
+ ]
84
+
37
85
  class CreateParams(RequestOptions):
38
86
  model: NotRequired[
39
87
  Literal[
@@ -43,6 +91,7 @@ class ChatCompletion(APIResource["ChatCompletion"]):
43
91
  ]
44
92
  timeout: NotRequired[Optional["int"]]
45
93
  messages: List[ChatCompletionRequestMessage]
94
+ options: NotRequired["ChatCompletion.Options"]
46
95
 
47
96
  model: Literal[
48
97
  "AZURE_GPT_4_0613",
@@ -128,9 +128,10 @@ class Content(APIResource["Content"]):
128
128
  fileUrl: Optional[str]
129
129
 
130
130
  class UpdateParams(RequestOptions):
131
- contentId: str | None = None
132
- ownerId: str | None = None
133
- title: str | None = None
131
+ contentId: NotRequired[str]
132
+ ownerId: NotRequired[str]
133
+ title: NotRequired[str]
134
+ metadata: NotRequired[dict[str, str | None]]
134
135
 
135
136
  class Chunk(TypedDict):
136
137
  id: str
File without changes