unique_sdk 0.10.39__py3-none-any.whl → 0.10.43__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.
- unique_sdk/__init__.py +2 -0
- unique_sdk/api_resources/_content.py +6 -0
- unique_sdk/api_resources/_group.py +194 -0
- unique_sdk/api_resources/_message.py +36 -0
- unique_sdk/api_resources/_message_log.py +24 -0
- unique_sdk/api_resources/_user.py +91 -0
- {unique_sdk-0.10.39.dist-info → unique_sdk-0.10.43.dist-info}/METADATA +111 -1
- {unique_sdk-0.10.39.dist-info → unique_sdk-0.10.43.dist-info}/RECORD +10 -8
- {unique_sdk-0.10.39.dist-info → unique_sdk-0.10.43.dist-info}/LICENSE +0 -0
- {unique_sdk-0.10.39.dist-info → unique_sdk-0.10.43.dist-info}/WHEEL +0 -0
unique_sdk/__init__.py
CHANGED
|
@@ -84,6 +84,8 @@ from unique_sdk.api_resources._folder import Folder as Folder
|
|
|
84
84
|
from unique_sdk.api_resources._embedding import Embeddings as Embeddings
|
|
85
85
|
from unique_sdk.api_resources._acronyms import Acronyms as Acronyms
|
|
86
86
|
from unique_sdk.api_resources._llm_models import LLMModels as LLMModels
|
|
87
|
+
from unique_sdk.api_resources._user import User as User
|
|
88
|
+
from unique_sdk.api_resources._group import Group as Group
|
|
87
89
|
from unique_sdk.api_resources._message_assessment import (
|
|
88
90
|
MessageAssessment as MessageAssessment,
|
|
89
91
|
)
|
|
@@ -351,6 +351,9 @@ class Content(APIResource["Content"]):
|
|
|
351
351
|
"""
|
|
352
352
|
if "input" in params:
|
|
353
353
|
params["input"]["metadata"] = params["input"].get("metadata") or {}
|
|
354
|
+
if "description" in params["input"] and not params["input"]["description"]:
|
|
355
|
+
params["input"].pop("description")
|
|
356
|
+
|
|
354
357
|
return cast(
|
|
355
358
|
"Content",
|
|
356
359
|
cls._static_request(
|
|
@@ -374,6 +377,9 @@ class Content(APIResource["Content"]):
|
|
|
374
377
|
"""
|
|
375
378
|
if "input" in params:
|
|
376
379
|
params["input"]["metadata"] = params["input"].get("metadata") or {}
|
|
380
|
+
if "description" in params["input"] and not params["input"]["description"]:
|
|
381
|
+
params["input"].pop("description")
|
|
382
|
+
|
|
377
383
|
return cast(
|
|
378
384
|
"Content",
|
|
379
385
|
await cls._static_request_async(
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
ClassVar,
|
|
3
|
+
List,
|
|
4
|
+
Literal,
|
|
5
|
+
NotRequired,
|
|
6
|
+
Optional,
|
|
7
|
+
TypedDict,
|
|
8
|
+
Unpack,
|
|
9
|
+
cast,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from unique_sdk._api_resource import APIResource
|
|
13
|
+
from unique_sdk._request_options import RequestOptions
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class Group(APIResource["Group"]):
|
|
17
|
+
OBJECT_NAME: ClassVar[Literal["group"]] = "group"
|
|
18
|
+
|
|
19
|
+
class GetParams(RequestOptions):
|
|
20
|
+
"""
|
|
21
|
+
Parameters for getting groups in a company.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
skip: NotRequired[Optional[int]]
|
|
25
|
+
take: NotRequired[Optional[int]]
|
|
26
|
+
name: NotRequired[Optional[str]]
|
|
27
|
+
|
|
28
|
+
class UpdateParams(RequestOptions):
|
|
29
|
+
"""
|
|
30
|
+
Parameters for updating a group.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
name: NotRequired[Optional[str]]
|
|
34
|
+
|
|
35
|
+
class GroupMember(TypedDict):
|
|
36
|
+
"""
|
|
37
|
+
Represents a member of a group.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
entityId: str
|
|
41
|
+
|
|
42
|
+
class Group(TypedDict):
|
|
43
|
+
"""
|
|
44
|
+
Represents a group in the company.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
id: str
|
|
48
|
+
name: str
|
|
49
|
+
externalId: str
|
|
50
|
+
parentId: Optional[str]
|
|
51
|
+
roles: Optional[List[str]]
|
|
52
|
+
members: Optional[List["Group.GroupMember"]]
|
|
53
|
+
createdAt: str
|
|
54
|
+
updatedAt: str
|
|
55
|
+
|
|
56
|
+
class Groups(TypedDict):
|
|
57
|
+
"""
|
|
58
|
+
Response for getting groups.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
groups: List["Group.Group"]
|
|
62
|
+
|
|
63
|
+
class DeleteResponse(TypedDict):
|
|
64
|
+
"""
|
|
65
|
+
Response for deleting a group.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
id: str
|
|
69
|
+
|
|
70
|
+
@classmethod
|
|
71
|
+
def get_groups(
|
|
72
|
+
cls,
|
|
73
|
+
user_id: str,
|
|
74
|
+
company_id: str,
|
|
75
|
+
**params: Unpack["Group.GetParams"],
|
|
76
|
+
) -> "Group.Groups":
|
|
77
|
+
"""
|
|
78
|
+
Get groups in a company.
|
|
79
|
+
"""
|
|
80
|
+
return cast(
|
|
81
|
+
"Group.Groups",
|
|
82
|
+
cls._static_request(
|
|
83
|
+
"get",
|
|
84
|
+
"/groups",
|
|
85
|
+
user_id,
|
|
86
|
+
company_id,
|
|
87
|
+
params=params,
|
|
88
|
+
),
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
@classmethod
|
|
92
|
+
async def get_groups_async(
|
|
93
|
+
cls,
|
|
94
|
+
user_id: str,
|
|
95
|
+
company_id: str,
|
|
96
|
+
**params: Unpack["Group.GetParams"],
|
|
97
|
+
) -> "Group.Groups":
|
|
98
|
+
"""
|
|
99
|
+
Async get groups in a company.
|
|
100
|
+
"""
|
|
101
|
+
return cast(
|
|
102
|
+
"Group.Groups",
|
|
103
|
+
await cls._static_request_async(
|
|
104
|
+
"get",
|
|
105
|
+
"/groups",
|
|
106
|
+
user_id,
|
|
107
|
+
company_id,
|
|
108
|
+
params=params,
|
|
109
|
+
),
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
@classmethod
|
|
113
|
+
def delete_group(
|
|
114
|
+
cls,
|
|
115
|
+
user_id: str,
|
|
116
|
+
company_id: str,
|
|
117
|
+
group_id: str,
|
|
118
|
+
) -> "Group.DeleteResponse":
|
|
119
|
+
"""
|
|
120
|
+
Delete a group in a company.
|
|
121
|
+
"""
|
|
122
|
+
return cast(
|
|
123
|
+
"Group.DeleteResponse",
|
|
124
|
+
cls._static_request(
|
|
125
|
+
"delete",
|
|
126
|
+
f"/groups/{group_id}",
|
|
127
|
+
user_id,
|
|
128
|
+
company_id,
|
|
129
|
+
),
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
@classmethod
|
|
133
|
+
async def delete_group_async(
|
|
134
|
+
cls,
|
|
135
|
+
user_id: str,
|
|
136
|
+
company_id: str,
|
|
137
|
+
group_id: str,
|
|
138
|
+
) -> "Group.DeleteResponse":
|
|
139
|
+
"""
|
|
140
|
+
Async delete a group in a company.
|
|
141
|
+
"""
|
|
142
|
+
return cast(
|
|
143
|
+
"Group.DeleteResponse",
|
|
144
|
+
await cls._static_request_async(
|
|
145
|
+
"delete",
|
|
146
|
+
f"/groups/{group_id}",
|
|
147
|
+
user_id,
|
|
148
|
+
company_id,
|
|
149
|
+
),
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
@classmethod
|
|
153
|
+
def update_group(
|
|
154
|
+
cls,
|
|
155
|
+
user_id: str,
|
|
156
|
+
company_id: str,
|
|
157
|
+
group_id: str,
|
|
158
|
+
**params: Unpack["Group.UpdateParams"],
|
|
159
|
+
) -> "Group.Group":
|
|
160
|
+
"""
|
|
161
|
+
Update a group in a company.
|
|
162
|
+
"""
|
|
163
|
+
return cast(
|
|
164
|
+
"Group.Group",
|
|
165
|
+
cls._static_request(
|
|
166
|
+
"patch",
|
|
167
|
+
f"/groups/{group_id}",
|
|
168
|
+
user_id,
|
|
169
|
+
company_id,
|
|
170
|
+
params=params,
|
|
171
|
+
),
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
@classmethod
|
|
175
|
+
async def update_group_async(
|
|
176
|
+
cls,
|
|
177
|
+
user_id: str,
|
|
178
|
+
company_id: str,
|
|
179
|
+
group_id: str,
|
|
180
|
+
**params: Unpack["Group.UpdateParams"],
|
|
181
|
+
) -> "Group.Group":
|
|
182
|
+
"""
|
|
183
|
+
Async update a group in a company.
|
|
184
|
+
"""
|
|
185
|
+
return cast(
|
|
186
|
+
"Group.Group",
|
|
187
|
+
await cls._static_request_async(
|
|
188
|
+
"patch",
|
|
189
|
+
f"/groups/{group_id}",
|
|
190
|
+
user_id,
|
|
191
|
+
company_id,
|
|
192
|
+
params=params,
|
|
193
|
+
),
|
|
194
|
+
)
|
|
@@ -167,6 +167,12 @@ class Message(APIResource["Message"]):
|
|
|
167
167
|
"""
|
|
168
168
|
Creates a new message object.
|
|
169
169
|
"""
|
|
170
|
+
# Clean up empty descriptions from references
|
|
171
|
+
if "references" in params and params["references"]:
|
|
172
|
+
for ref in params["references"]:
|
|
173
|
+
if "description" in ref and not ref["description"]:
|
|
174
|
+
ref.pop("description")
|
|
175
|
+
|
|
170
176
|
return cast(
|
|
171
177
|
"Message",
|
|
172
178
|
cls._static_request(
|
|
@@ -188,6 +194,12 @@ class Message(APIResource["Message"]):
|
|
|
188
194
|
"""
|
|
189
195
|
Creates a new message object.
|
|
190
196
|
"""
|
|
197
|
+
# Clean up empty descriptions from references
|
|
198
|
+
if "references" in params and params["references"]:
|
|
199
|
+
for ref in params["references"]:
|
|
200
|
+
if "description" in ref and not ref["description"]:
|
|
201
|
+
ref.pop("description")
|
|
202
|
+
|
|
191
203
|
return cast(
|
|
192
204
|
"Message",
|
|
193
205
|
await cls._static_request_async(
|
|
@@ -210,6 +222,12 @@ class Message(APIResource["Message"]):
|
|
|
210
222
|
"""
|
|
211
223
|
Updates an existing message object.
|
|
212
224
|
"""
|
|
225
|
+
# Clean up empty descriptions from references
|
|
226
|
+
if "references" in params and params["references"]:
|
|
227
|
+
for ref in params["references"]:
|
|
228
|
+
if "description" in ref and not ref["description"]:
|
|
229
|
+
ref.pop("description")
|
|
230
|
+
|
|
213
231
|
url = "%s/%s" % (cls.class_url(), quote_plus(id))
|
|
214
232
|
return cast(
|
|
215
233
|
"Message",
|
|
@@ -233,6 +251,12 @@ class Message(APIResource["Message"]):
|
|
|
233
251
|
"""
|
|
234
252
|
Updates an existing message object.
|
|
235
253
|
"""
|
|
254
|
+
# Clean up empty descriptions from references
|
|
255
|
+
if "references" in params and params["references"]:
|
|
256
|
+
for ref in params["references"]:
|
|
257
|
+
if "description" in ref and not ref["description"]:
|
|
258
|
+
ref.pop("description")
|
|
259
|
+
|
|
236
260
|
url = "%s/%s" % (cls.class_url(), quote_plus(id))
|
|
237
261
|
return cast(
|
|
238
262
|
"Message",
|
|
@@ -326,6 +350,12 @@ class Message(APIResource["Message"]):
|
|
|
326
350
|
"""
|
|
327
351
|
Creates a new message event object.
|
|
328
352
|
"""
|
|
353
|
+
# Clean up empty descriptions from references
|
|
354
|
+
if "references" in params and params["references"]:
|
|
355
|
+
for ref in params["references"]:
|
|
356
|
+
if "description" in ref and not ref["description"]:
|
|
357
|
+
ref.pop("description")
|
|
358
|
+
|
|
329
359
|
message_id = params.get("messageId")
|
|
330
360
|
params.pop("messageId", None)
|
|
331
361
|
return cast(
|
|
@@ -349,6 +379,12 @@ class Message(APIResource["Message"]):
|
|
|
349
379
|
"""
|
|
350
380
|
Creates a new message event object.
|
|
351
381
|
"""
|
|
382
|
+
# Clean up empty descriptions from references
|
|
383
|
+
if "references" in params and params["references"]:
|
|
384
|
+
for ref in params["references"]:
|
|
385
|
+
if "description" in ref and not ref["description"]:
|
|
386
|
+
ref.pop("description")
|
|
387
|
+
|
|
352
388
|
message_id = params.get("messageId")
|
|
353
389
|
params.pop("messageId", None)
|
|
354
390
|
return cast(
|
|
@@ -64,6 +64,12 @@ class MessageLog(APIResource["MessageLog"]):
|
|
|
64
64
|
"""
|
|
65
65
|
Create a MessageLog.
|
|
66
66
|
"""
|
|
67
|
+
# Clean up empty descriptions from references
|
|
68
|
+
if "references" in params and params["references"]:
|
|
69
|
+
for ref in params["references"]:
|
|
70
|
+
if "description" in ref and not ref["description"]:
|
|
71
|
+
ref.pop("description")
|
|
72
|
+
|
|
67
73
|
return cast(
|
|
68
74
|
"MessageLog",
|
|
69
75
|
cls._static_request(
|
|
@@ -85,6 +91,12 @@ class MessageLog(APIResource["MessageLog"]):
|
|
|
85
91
|
"""
|
|
86
92
|
Async create a MessageLog.
|
|
87
93
|
"""
|
|
94
|
+
# Clean up empty descriptions from references
|
|
95
|
+
if "references" in params and params["references"]:
|
|
96
|
+
for ref in params["references"]:
|
|
97
|
+
if "description" in ref and not ref["description"]:
|
|
98
|
+
ref.pop("description")
|
|
99
|
+
|
|
88
100
|
return cast(
|
|
89
101
|
"MessageLog",
|
|
90
102
|
await cls._static_request_async(
|
|
@@ -107,6 +119,12 @@ class MessageLog(APIResource["MessageLog"]):
|
|
|
107
119
|
"""
|
|
108
120
|
Update a MessageLog.
|
|
109
121
|
"""
|
|
122
|
+
# Clean up empty descriptions from references
|
|
123
|
+
if "references" in params and params["references"]:
|
|
124
|
+
for ref in params["references"]:
|
|
125
|
+
if "description" in ref and not ref["description"]:
|
|
126
|
+
ref.pop("description")
|
|
127
|
+
|
|
110
128
|
return cast(
|
|
111
129
|
"MessageLog",
|
|
112
130
|
cls._static_request(
|
|
@@ -129,6 +147,12 @@ class MessageLog(APIResource["MessageLog"]):
|
|
|
129
147
|
"""
|
|
130
148
|
Async update a MessageLog.
|
|
131
149
|
"""
|
|
150
|
+
# Clean up empty descriptions from references
|
|
151
|
+
if "references" in params and params["references"]:
|
|
152
|
+
for ref in params["references"]:
|
|
153
|
+
if "description" in ref and not ref["description"]:
|
|
154
|
+
ref.pop("description")
|
|
155
|
+
|
|
132
156
|
return cast(
|
|
133
157
|
"MessageLog",
|
|
134
158
|
await cls._static_request_async(
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
ClassVar,
|
|
3
|
+
List,
|
|
4
|
+
NotRequired,
|
|
5
|
+
Optional,
|
|
6
|
+
TypedDict,
|
|
7
|
+
Unpack,
|
|
8
|
+
cast,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
from unique_sdk._api_resource import APIResource
|
|
12
|
+
from unique_sdk._request_options import RequestOptions
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class User(APIResource["User"]):
|
|
16
|
+
OBJECT_NAME: ClassVar[str] = "users"
|
|
17
|
+
|
|
18
|
+
class GetParams(RequestOptions):
|
|
19
|
+
"""
|
|
20
|
+
Parameters for getting users in a company.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
skip: NotRequired[Optional[int]]
|
|
24
|
+
take: NotRequired[Optional[int]]
|
|
25
|
+
email: NotRequired[Optional[str]]
|
|
26
|
+
displayName: NotRequired[Optional[str]]
|
|
27
|
+
|
|
28
|
+
class User(TypedDict):
|
|
29
|
+
"""
|
|
30
|
+
Represents a user in the company.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
id: str
|
|
34
|
+
externalId: Optional[str]
|
|
35
|
+
firstName: str
|
|
36
|
+
lastName: str
|
|
37
|
+
displayName: str
|
|
38
|
+
userName: str
|
|
39
|
+
email: str
|
|
40
|
+
updatedAt: str
|
|
41
|
+
createdAt: str
|
|
42
|
+
active: bool
|
|
43
|
+
|
|
44
|
+
class Users(TypedDict):
|
|
45
|
+
"""
|
|
46
|
+
Response for getting users.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
users: List["User.User"]
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def get_users(
|
|
53
|
+
cls,
|
|
54
|
+
user_id: str,
|
|
55
|
+
company_id: str,
|
|
56
|
+
**params: Unpack["User.GetParams"],
|
|
57
|
+
) -> "User.Users":
|
|
58
|
+
"""
|
|
59
|
+
Get users in a company.
|
|
60
|
+
"""
|
|
61
|
+
return cast(
|
|
62
|
+
"User.Users",
|
|
63
|
+
cls._static_request(
|
|
64
|
+
"get",
|
|
65
|
+
"/users",
|
|
66
|
+
user_id,
|
|
67
|
+
company_id,
|
|
68
|
+
params=params,
|
|
69
|
+
),
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
@classmethod
|
|
73
|
+
async def get_users_async(
|
|
74
|
+
cls,
|
|
75
|
+
user_id: str,
|
|
76
|
+
company_id: str,
|
|
77
|
+
**params: Unpack["User.GetParams"],
|
|
78
|
+
) -> "User.Users":
|
|
79
|
+
"""
|
|
80
|
+
Async get users in a company.
|
|
81
|
+
"""
|
|
82
|
+
return cast(
|
|
83
|
+
"User.Users",
|
|
84
|
+
await cls._static_request_async(
|
|
85
|
+
"get",
|
|
86
|
+
"/users",
|
|
87
|
+
user_id,
|
|
88
|
+
company_id,
|
|
89
|
+
params=params,
|
|
90
|
+
),
|
|
91
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unique_sdk
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.43
|
|
4
4
|
Summary:
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: Martin Fadler
|
|
@@ -43,6 +43,8 @@ The Unique Python SDK provides access to the public API of Unique AI. It also en
|
|
|
43
43
|
- [Folder](#folder)
|
|
44
44
|
- [Space](#space)
|
|
45
45
|
- [LLM Models](#llm-models)
|
|
46
|
+
- [User](#user)
|
|
47
|
+
- [Group](#group)
|
|
46
48
|
- [Agentic Table](#agentic-table)
|
|
47
49
|
6. [UniqueQL](#uniqueql)
|
|
48
50
|
- [Query Structure](#uniqueql-query-structure)
|
|
@@ -262,6 +264,8 @@ unique_sdk.Message.modify(
|
|
|
262
264
|
- [Folder](#folder)
|
|
263
265
|
- [Space](#space)
|
|
264
266
|
- [LLM Models](#llm-models)
|
|
267
|
+
- [User](#user)
|
|
268
|
+
- [Group](#group)
|
|
265
269
|
- [Agentic Table](#agentic-table)
|
|
266
270
|
|
|
267
271
|
Most of the API services provide an asynchronous version of the method. The async methods are suffixed with `_async`.
|
|
@@ -1364,6 +1368,42 @@ unique_sdk.Folder.delete(
|
|
|
1364
1368
|
|
|
1365
1369
|
### Space
|
|
1366
1370
|
|
|
1371
|
+
#### `unique_sdk.Space.create_message`
|
|
1372
|
+
|
|
1373
|
+
Send a message in a space. You can optionally provide a chat ID to continue an existing conversation, or omit it to start a new chat.
|
|
1374
|
+
|
|
1375
|
+
```python
|
|
1376
|
+
message = unique_sdk.Space.create_message(
|
|
1377
|
+
user_id=user_id,
|
|
1378
|
+
company_id=company_id,
|
|
1379
|
+
chatId="chat_dejfhe729br398", # Optional - if not provided, a new chat will be created
|
|
1380
|
+
assistantId="assistant_abc123",
|
|
1381
|
+
text="Hello, how can you help me?",
|
|
1382
|
+
toolChoices=["WebSearch"], # Optional - list of tools to use
|
|
1383
|
+
scopeRules={ # Optional - scope rules for filtering
|
|
1384
|
+
"or": [
|
|
1385
|
+
{
|
|
1386
|
+
"operator": "contains",
|
|
1387
|
+
"path": ["folderIdPath"],
|
|
1388
|
+
"value": "uniquepathid://scope_123"
|
|
1389
|
+
}
|
|
1390
|
+
]
|
|
1391
|
+
},
|
|
1392
|
+
)
|
|
1393
|
+
```
|
|
1394
|
+
|
|
1395
|
+
#### `unique_sdk.Space.get_latest_message`
|
|
1396
|
+
|
|
1397
|
+
Get the latest message in a space chat.
|
|
1398
|
+
|
|
1399
|
+
```python
|
|
1400
|
+
message = unique_sdk.Space.get_latest_message(
|
|
1401
|
+
user_id=user_id,
|
|
1402
|
+
company_id=company_id,
|
|
1403
|
+
chat_id="chat_dejfhe729br398",
|
|
1404
|
+
)
|
|
1405
|
+
```
|
|
1406
|
+
|
|
1367
1407
|
#### `unique_sdk.Space.delete_chat`
|
|
1368
1408
|
|
|
1369
1409
|
Delete a space chat by id. If the chat does not exist, the function will return an error.
|
|
@@ -1390,6 +1430,64 @@ models = unique_sdk.LLMModels.get(
|
|
|
1390
1430
|
)
|
|
1391
1431
|
```
|
|
1392
1432
|
|
|
1433
|
+
### User
|
|
1434
|
+
|
|
1435
|
+
#### `unique_sdk.User.get_users` (Compatible with release >.48)
|
|
1436
|
+
|
|
1437
|
+
Get users in a company. You can filter by email, display name, and use pagination with skip and take parameters.
|
|
1438
|
+
|
|
1439
|
+
```python
|
|
1440
|
+
users = unique_sdk.User.get_users(
|
|
1441
|
+
user_id=user_id,
|
|
1442
|
+
company_id=company_id,
|
|
1443
|
+
skip=0, # Optional - number of records to skip for pagination
|
|
1444
|
+
take=50, # Optional - number of records to return (max 1000)
|
|
1445
|
+
email="user@example.com", # Optional - filter by email
|
|
1446
|
+
displayName="John", # Optional - filter by display name
|
|
1447
|
+
)
|
|
1448
|
+
```
|
|
1449
|
+
|
|
1450
|
+
### Group
|
|
1451
|
+
|
|
1452
|
+
#### `unique_sdk.Group.get_groups` (Compatible with release >.48)
|
|
1453
|
+
|
|
1454
|
+
Get groups in a company. You can filter by name and use pagination with skip and take parameters.
|
|
1455
|
+
|
|
1456
|
+
```python
|
|
1457
|
+
groups = unique_sdk.Group.get_groups(
|
|
1458
|
+
user_id=user_id,
|
|
1459
|
+
company_id=company_id,
|
|
1460
|
+
skip=0, # Optional - number of records to skip for pagination
|
|
1461
|
+
take=50, # Optional - number of records to return (max 1000)
|
|
1462
|
+
name="Admin", # Optional - filter by group name
|
|
1463
|
+
)
|
|
1464
|
+
```
|
|
1465
|
+
|
|
1466
|
+
#### `unique_sdk.Group.update_group` (Compatible with release >.48)
|
|
1467
|
+
|
|
1468
|
+
Update a group in a company. You can update the group's name.
|
|
1469
|
+
|
|
1470
|
+
```python
|
|
1471
|
+
updated_group = unique_sdk.Group.update_group(
|
|
1472
|
+
user_id=user_id,
|
|
1473
|
+
company_id=company_id,
|
|
1474
|
+
group_id="group_id_here",
|
|
1475
|
+
name="New Group Name", # Optional - update the group name
|
|
1476
|
+
)
|
|
1477
|
+
```
|
|
1478
|
+
|
|
1479
|
+
#### `unique_sdk.Group.delete_group` (Compatible with release >.48)
|
|
1480
|
+
|
|
1481
|
+
Delete a group in a company by its group ID.
|
|
1482
|
+
|
|
1483
|
+
```python
|
|
1484
|
+
result = unique_sdk.Group.delete_group(
|
|
1485
|
+
user_id=user_id,
|
|
1486
|
+
company_id=company_id,
|
|
1487
|
+
group_id="group_id_here",
|
|
1488
|
+
)
|
|
1489
|
+
```
|
|
1490
|
+
|
|
1393
1491
|
### Agentic Table
|
|
1394
1492
|
|
|
1395
1493
|
The Agentic Table (Magic Table) API provides functionality for managing interactive tables with AI-powered cells, activity tracking, and metadata management.
|
|
@@ -1995,6 +2093,18 @@ All notable changes to this project will be documented in this file.
|
|
|
1995
2093
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
1996
2094
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
1997
2095
|
|
|
2096
|
+
## [0.10.43] - 2025-11-14
|
|
2097
|
+
- Add get, delete and update groups functions.
|
|
2098
|
+
|
|
2099
|
+
## [0.10.42] - 2025-11-14
|
|
2100
|
+
- Add get_users function.
|
|
2101
|
+
|
|
2102
|
+
## [0.10.41] - 2025-11-13
|
|
2103
|
+
- Add create_message and get_latest_message.
|
|
2104
|
+
|
|
2105
|
+
## [0.10.40] - 2025-11-10
|
|
2106
|
+
- Don't send description if not defined.
|
|
2107
|
+
|
|
1998
2108
|
## [0.10.39] - 2025-11-07
|
|
1999
2109
|
- Add function to get llm models
|
|
2000
2110
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
unique_sdk/__init__.py,sha256=
|
|
1
|
+
unique_sdk/__init__.py,sha256=yfrzJ2M36Ota9-eohCxD-rmvfthh_eI3E3Jz_DPqiqs,4204
|
|
2
2
|
unique_sdk/_api_requestor.py,sha256=i4gCpzx8zP95sv-AhJfpQxKvWR0U-I6lclHyV55RPtg,14397
|
|
3
3
|
unique_sdk/_api_resource.py,sha256=ytjomI-IVJwsbvdPyuZCfF-bl-Abgf66bu1D34YxCu8,6244
|
|
4
4
|
unique_sdk/_api_version.py,sha256=Ku4JPdeyJtnX5eJJvRCEc1_u44UObdVrvrL1T-WwWCs,46
|
|
@@ -17,27 +17,29 @@ unique_sdk/api_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
17
17
|
unique_sdk/api_resources/_acronyms.py,sha256=GIU1XH1flGWQYcpsFqTYwg4ioIGxVmb15tux84nmhEg,891
|
|
18
18
|
unique_sdk/api_resources/_agentic_table.py,sha256=8-_f7t-m_iiiOj2835iESoxz91YRxl4-tkxpzQbgdcI,9958
|
|
19
19
|
unique_sdk/api_resources/_chat_completion.py,sha256=ILCAffxkbkfh2iV9L4KKnfe80gZmT9pWfkNmf3mq68U,2172
|
|
20
|
-
unique_sdk/api_resources/_content.py,sha256=
|
|
20
|
+
unique_sdk/api_resources/_content.py,sha256=Z7BU2bw1qULnn-UBX0f6ix_XV0qI1yaRH6zOSgtMvho,17514
|
|
21
21
|
unique_sdk/api_resources/_embedding.py,sha256=C6qak7cCUBMBINfPhgH8taCJZ9n6w1MUElqDJJ8dG10,1281
|
|
22
22
|
unique_sdk/api_resources/_event.py,sha256=bpWF9vstdoAWbUzr-iiGP713ceP0zPk77GJXiImf9zg,374
|
|
23
23
|
unique_sdk/api_resources/_folder.py,sha256=WPyRPsdAE62tU7p4hEYiVB4OoArv_60b8t4j7hgrJKk,15765
|
|
24
|
+
unique_sdk/api_resources/_group.py,sha256=f3spoWF0fX0rZkWrJZdalBMLkwRtccNOSSxFadypum0,4341
|
|
24
25
|
unique_sdk/api_resources/_integrated.py,sha256=O8e673z-RB7FRFMQYn_YEuHijebr5W7KJxkUnymbBZk,6164
|
|
25
26
|
unique_sdk/api_resources/_llm_models.py,sha256=3Jn6MpxWgZ43Hze8JHd4_n27si5xmwd3JE8r8cEZq_M,1640
|
|
26
27
|
unique_sdk/api_resources/_mcp.py,sha256=zKh0dyn0QnkKk57N2zlGVN_GQoxEp5T2CS38vVm6jQY,3341
|
|
27
|
-
unique_sdk/api_resources/_message.py,sha256=
|
|
28
|
+
unique_sdk/api_resources/_message.py,sha256=tSS_jVwoAffBFH6RSClEnbRf48MleL7RMs3MnbNDq-E,10986
|
|
28
29
|
unique_sdk/api_resources/_message_assessment.py,sha256=SSfx6eW7zb_GKe8cFJzCqW-t-_eWEXxKP5cnIb0DhIc,2276
|
|
29
30
|
unique_sdk/api_resources/_message_execution.py,sha256=7V_Qovu4vzoXDd2em0AgnAJC460RUX6AE4byztNPlvg,4556
|
|
30
|
-
unique_sdk/api_resources/_message_log.py,sha256=
|
|
31
|
+
unique_sdk/api_resources/_message_log.py,sha256=_DifZ4Di7uKyzkP0i8rwu5IIiYZPCBp5lvE4gfTrTHw,4793
|
|
31
32
|
unique_sdk/api_resources/_search.py,sha256=GQItZKoGNOVZfkLLltBmsRZYBIreRKU0lGW8Kgpj1_Q,1959
|
|
32
33
|
unique_sdk/api_resources/_search_string.py,sha256=LZz2_QPZXV1NXucRR06dnDC2miK7J8XBY7dXX2xoDY4,1610
|
|
33
34
|
unique_sdk/api_resources/_short_term_memory.py,sha256=vPRN-Y0WPx74E6y-A3LocGc0TxJdzT-xGL66WzZwKRg,2820
|
|
34
35
|
unique_sdk/api_resources/_space.py,sha256=JjIPauH37wULEiNO5PqOfgsipyfbRlC0KqjJ4_1Uugg,5035
|
|
36
|
+
unique_sdk/api_resources/_user.py,sha256=u59Hgq9i-QhYlqIYgk-KE7OeSx5xuNVo_gUgDpZTLcI,1974
|
|
35
37
|
unique_sdk/utils/chat_history.py,sha256=5UqL9hF1O9pV7skbNOlEibF5rHdYsmG3m5-YEPUowOs,3037
|
|
36
38
|
unique_sdk/utils/chat_in_space.py,sha256=cdjETBLnjv-OE8qsQpm626ks5yBdfQG_KBeG0WIzCbY,5994
|
|
37
39
|
unique_sdk/utils/file_io.py,sha256=lskRULIh7qExK26o_1YqRs0f5mqJHTS9m_mdxlsVo4s,4497
|
|
38
40
|
unique_sdk/utils/sources.py,sha256=DoxxhMLcLhmDfNarjXa41H4JD2GSSDywr71hiC-4pYc,4952
|
|
39
41
|
unique_sdk/utils/token.py,sha256=AzKuAA1AwBtnvSFxGcsHLpxXr_wWE5Mj4jYBbOz2ljA,1740
|
|
40
|
-
unique_sdk-0.10.
|
|
41
|
-
unique_sdk-0.10.
|
|
42
|
-
unique_sdk-0.10.
|
|
43
|
-
unique_sdk-0.10.
|
|
42
|
+
unique_sdk-0.10.43.dist-info/LICENSE,sha256=EJCWoHgrXVBUb47PnjeV4MFIEOR71MAdCOIgv61J-4k,1065
|
|
43
|
+
unique_sdk-0.10.43.dist-info/METADATA,sha256=KdrdST-aefdKEsL0BaXUxAm4IyhnZSwc4TcKVDEVOBA,71736
|
|
44
|
+
unique_sdk-0.10.43.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
45
|
+
unique_sdk-0.10.43.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|