structifyai 1.177.0__py3-none-any.whl → 1.179.0__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.
- structify/_version.py +1 -1
- structify/resources/admin/__init__.py +14 -0
- structify/resources/admin/admin.py +32 -0
- structify/resources/admin/connector.py +176 -0
- structify/resources/code.py +9 -1
- structify/resources/connector_catalog/connector_catalog.py +10 -2
- structify/resources/polars.py +55 -42
- structify/types/admin/__init__.py +3 -0
- structify/types/admin/clone_connector_item_param.py +15 -0
- structify/types/admin/clone_connectors_response.py +12 -0
- structify/types/admin/connector_clone_params.py +16 -0
- structify/types/chat_create_session_params.py +2 -0
- structify/types/chat_event.py +35 -1
- structify/types/code_generate_code_params.py +7 -0
- structify/types/connector_catalog_list_params.py +3 -0
- structify/types/dataset_view_tables_with_relationships_response.py +4 -0
- structify/types/job_get_scrapers_response.py +3 -0
- structify/types/tool_result.py +21 -6
- {structifyai-1.177.0.dist-info → structifyai-1.179.0.dist-info}/METADATA +1 -1
- {structifyai-1.177.0.dist-info → structifyai-1.179.0.dist-info}/RECORD +22 -18
- {structifyai-1.177.0.dist-info → structifyai-1.179.0.dist-info}/WHEEL +0 -0
- {structifyai-1.177.0.dist-info → structifyai-1.179.0.dist-info}/licenses/LICENSE +0 -0
structify/_version.py
CHANGED
|
@@ -48,6 +48,14 @@ from .sandbox import (
|
|
|
48
48
|
SandboxResourceWithStreamingResponse,
|
|
49
49
|
AsyncSandboxResourceWithStreamingResponse,
|
|
50
50
|
)
|
|
51
|
+
from .connector import (
|
|
52
|
+
ConnectorResource,
|
|
53
|
+
AsyncConnectorResource,
|
|
54
|
+
ConnectorResourceWithRawResponse,
|
|
55
|
+
AsyncConnectorResourceWithRawResponse,
|
|
56
|
+
ConnectorResourceWithStreamingResponse,
|
|
57
|
+
AsyncConnectorResourceWithStreamingResponse,
|
|
58
|
+
)
|
|
51
59
|
from .chat_templates import (
|
|
52
60
|
ChatTemplatesResource,
|
|
53
61
|
AsyncChatTemplatesResource,
|
|
@@ -108,6 +116,12 @@ __all__ = [
|
|
|
108
116
|
"AsyncChatTemplatesResourceWithRawResponse",
|
|
109
117
|
"ChatTemplatesResourceWithStreamingResponse",
|
|
110
118
|
"AsyncChatTemplatesResourceWithStreamingResponse",
|
|
119
|
+
"ConnectorResource",
|
|
120
|
+
"AsyncConnectorResource",
|
|
121
|
+
"ConnectorResourceWithRawResponse",
|
|
122
|
+
"AsyncConnectorResourceWithRawResponse",
|
|
123
|
+
"ConnectorResourceWithStreamingResponse",
|
|
124
|
+
"AsyncConnectorResourceWithStreamingResponse",
|
|
111
125
|
"AdminResource",
|
|
112
126
|
"AsyncAdminResource",
|
|
113
127
|
"AdminResourceWithRawResponse",
|
|
@@ -43,6 +43,14 @@ from .sandbox import (
|
|
|
43
43
|
AsyncSandboxResourceWithStreamingResponse,
|
|
44
44
|
)
|
|
45
45
|
from ..._compat import cached_property
|
|
46
|
+
from .connector import (
|
|
47
|
+
ConnectorResource,
|
|
48
|
+
AsyncConnectorResource,
|
|
49
|
+
ConnectorResourceWithRawResponse,
|
|
50
|
+
AsyncConnectorResourceWithRawResponse,
|
|
51
|
+
ConnectorResourceWithStreamingResponse,
|
|
52
|
+
AsyncConnectorResourceWithStreamingResponse,
|
|
53
|
+
)
|
|
46
54
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
47
55
|
from .chat_templates import (
|
|
48
56
|
ChatTemplatesResource,
|
|
@@ -93,6 +101,10 @@ class AdminResource(SyncAPIResource):
|
|
|
93
101
|
def chat_templates(self) -> ChatTemplatesResource:
|
|
94
102
|
return ChatTemplatesResource(self._client)
|
|
95
103
|
|
|
104
|
+
@cached_property
|
|
105
|
+
def connector(self) -> ConnectorResource:
|
|
106
|
+
return ConnectorResource(self._client)
|
|
107
|
+
|
|
96
108
|
@cached_property
|
|
97
109
|
def with_raw_response(self) -> AdminResourceWithRawResponse:
|
|
98
110
|
"""
|
|
@@ -142,6 +154,10 @@ class AsyncAdminResource(AsyncAPIResource):
|
|
|
142
154
|
def chat_templates(self) -> AsyncChatTemplatesResource:
|
|
143
155
|
return AsyncChatTemplatesResource(self._client)
|
|
144
156
|
|
|
157
|
+
@cached_property
|
|
158
|
+
def connector(self) -> AsyncConnectorResource:
|
|
159
|
+
return AsyncConnectorResource(self._client)
|
|
160
|
+
|
|
145
161
|
@cached_property
|
|
146
162
|
def with_raw_response(self) -> AsyncAdminResourceWithRawResponse:
|
|
147
163
|
"""
|
|
@@ -194,6 +210,10 @@ class AdminResourceWithRawResponse:
|
|
|
194
210
|
def chat_templates(self) -> ChatTemplatesResourceWithRawResponse:
|
|
195
211
|
return ChatTemplatesResourceWithRawResponse(self._admin.chat_templates)
|
|
196
212
|
|
|
213
|
+
@cached_property
|
|
214
|
+
def connector(self) -> ConnectorResourceWithRawResponse:
|
|
215
|
+
return ConnectorResourceWithRawResponse(self._admin.connector)
|
|
216
|
+
|
|
197
217
|
|
|
198
218
|
class AsyncAdminResourceWithRawResponse:
|
|
199
219
|
def __init__(self, admin: AsyncAdminResource) -> None:
|
|
@@ -227,6 +247,10 @@ class AsyncAdminResourceWithRawResponse:
|
|
|
227
247
|
def chat_templates(self) -> AsyncChatTemplatesResourceWithRawResponse:
|
|
228
248
|
return AsyncChatTemplatesResourceWithRawResponse(self._admin.chat_templates)
|
|
229
249
|
|
|
250
|
+
@cached_property
|
|
251
|
+
def connector(self) -> AsyncConnectorResourceWithRawResponse:
|
|
252
|
+
return AsyncConnectorResourceWithRawResponse(self._admin.connector)
|
|
253
|
+
|
|
230
254
|
|
|
231
255
|
class AdminResourceWithStreamingResponse:
|
|
232
256
|
def __init__(self, admin: AdminResource) -> None:
|
|
@@ -260,6 +284,10 @@ class AdminResourceWithStreamingResponse:
|
|
|
260
284
|
def chat_templates(self) -> ChatTemplatesResourceWithStreamingResponse:
|
|
261
285
|
return ChatTemplatesResourceWithStreamingResponse(self._admin.chat_templates)
|
|
262
286
|
|
|
287
|
+
@cached_property
|
|
288
|
+
def connector(self) -> ConnectorResourceWithStreamingResponse:
|
|
289
|
+
return ConnectorResourceWithStreamingResponse(self._admin.connector)
|
|
290
|
+
|
|
263
291
|
|
|
264
292
|
class AsyncAdminResourceWithStreamingResponse:
|
|
265
293
|
def __init__(self, admin: AsyncAdminResource) -> None:
|
|
@@ -292,3 +320,7 @@ class AsyncAdminResourceWithStreamingResponse:
|
|
|
292
320
|
@cached_property
|
|
293
321
|
def chat_templates(self) -> AsyncChatTemplatesResourceWithStreamingResponse:
|
|
294
322
|
return AsyncChatTemplatesResourceWithStreamingResponse(self._admin.chat_templates)
|
|
323
|
+
|
|
324
|
+
@cached_property
|
|
325
|
+
def connector(self) -> AsyncConnectorResourceWithStreamingResponse:
|
|
326
|
+
return AsyncConnectorResourceWithStreamingResponse(self._admin.connector)
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Iterable
|
|
6
|
+
|
|
7
|
+
import httpx
|
|
8
|
+
|
|
9
|
+
from ..._types import Body, Query, Headers, NotGiven, not_given
|
|
10
|
+
from ..._utils import maybe_transform, async_maybe_transform
|
|
11
|
+
from ..._compat import cached_property
|
|
12
|
+
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
13
|
+
from ..._response import (
|
|
14
|
+
to_raw_response_wrapper,
|
|
15
|
+
to_streamed_response_wrapper,
|
|
16
|
+
async_to_raw_response_wrapper,
|
|
17
|
+
async_to_streamed_response_wrapper,
|
|
18
|
+
)
|
|
19
|
+
from ...types.admin import connector_clone_params
|
|
20
|
+
from ..._base_client import make_request_options
|
|
21
|
+
from ...types.admin.clone_connectors_response import CloneConnectorsResponse
|
|
22
|
+
from ...types.admin.clone_connector_item_param import CloneConnectorItemParam
|
|
23
|
+
|
|
24
|
+
__all__ = ["ConnectorResource", "AsyncConnectorResource"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ConnectorResource(SyncAPIResource):
|
|
28
|
+
@cached_property
|
|
29
|
+
def with_raw_response(self) -> ConnectorResourceWithRawResponse:
|
|
30
|
+
"""
|
|
31
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
32
|
+
the raw response object instead of the parsed content.
|
|
33
|
+
|
|
34
|
+
For more information, see https://www.github.com/StructifyAI/structify-python#accessing-raw-response-data-eg-headers
|
|
35
|
+
"""
|
|
36
|
+
return ConnectorResourceWithRawResponse(self)
|
|
37
|
+
|
|
38
|
+
@cached_property
|
|
39
|
+
def with_streaming_response(self) -> ConnectorResourceWithStreamingResponse:
|
|
40
|
+
"""
|
|
41
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
42
|
+
|
|
43
|
+
For more information, see https://www.github.com/StructifyAI/structify-python#with_streaming_response
|
|
44
|
+
"""
|
|
45
|
+
return ConnectorResourceWithStreamingResponse(self)
|
|
46
|
+
|
|
47
|
+
def clone(
|
|
48
|
+
self,
|
|
49
|
+
*,
|
|
50
|
+
connectors: Iterable[CloneConnectorItemParam],
|
|
51
|
+
target_team_id: str,
|
|
52
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
53
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
54
|
+
extra_headers: Headers | None = None,
|
|
55
|
+
extra_query: Query | None = None,
|
|
56
|
+
extra_body: Body | None = None,
|
|
57
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
58
|
+
) -> CloneConnectorsResponse:
|
|
59
|
+
"""
|
|
60
|
+
Args:
|
|
61
|
+
extra_headers: Send extra headers
|
|
62
|
+
|
|
63
|
+
extra_query: Add additional query parameters to the request
|
|
64
|
+
|
|
65
|
+
extra_body: Add additional JSON properties to the request
|
|
66
|
+
|
|
67
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
68
|
+
"""
|
|
69
|
+
return self._post(
|
|
70
|
+
"/admin/connector/clone",
|
|
71
|
+
body=maybe_transform(
|
|
72
|
+
{
|
|
73
|
+
"connectors": connectors,
|
|
74
|
+
"target_team_id": target_team_id,
|
|
75
|
+
},
|
|
76
|
+
connector_clone_params.ConnectorCloneParams,
|
|
77
|
+
),
|
|
78
|
+
options=make_request_options(
|
|
79
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
80
|
+
),
|
|
81
|
+
cast_to=CloneConnectorsResponse,
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class AsyncConnectorResource(AsyncAPIResource):
|
|
86
|
+
@cached_property
|
|
87
|
+
def with_raw_response(self) -> AsyncConnectorResourceWithRawResponse:
|
|
88
|
+
"""
|
|
89
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
90
|
+
the raw response object instead of the parsed content.
|
|
91
|
+
|
|
92
|
+
For more information, see https://www.github.com/StructifyAI/structify-python#accessing-raw-response-data-eg-headers
|
|
93
|
+
"""
|
|
94
|
+
return AsyncConnectorResourceWithRawResponse(self)
|
|
95
|
+
|
|
96
|
+
@cached_property
|
|
97
|
+
def with_streaming_response(self) -> AsyncConnectorResourceWithStreamingResponse:
|
|
98
|
+
"""
|
|
99
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
100
|
+
|
|
101
|
+
For more information, see https://www.github.com/StructifyAI/structify-python#with_streaming_response
|
|
102
|
+
"""
|
|
103
|
+
return AsyncConnectorResourceWithStreamingResponse(self)
|
|
104
|
+
|
|
105
|
+
async def clone(
|
|
106
|
+
self,
|
|
107
|
+
*,
|
|
108
|
+
connectors: Iterable[CloneConnectorItemParam],
|
|
109
|
+
target_team_id: str,
|
|
110
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
111
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
112
|
+
extra_headers: Headers | None = None,
|
|
113
|
+
extra_query: Query | None = None,
|
|
114
|
+
extra_body: Body | None = None,
|
|
115
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
116
|
+
) -> CloneConnectorsResponse:
|
|
117
|
+
"""
|
|
118
|
+
Args:
|
|
119
|
+
extra_headers: Send extra headers
|
|
120
|
+
|
|
121
|
+
extra_query: Add additional query parameters to the request
|
|
122
|
+
|
|
123
|
+
extra_body: Add additional JSON properties to the request
|
|
124
|
+
|
|
125
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
126
|
+
"""
|
|
127
|
+
return await self._post(
|
|
128
|
+
"/admin/connector/clone",
|
|
129
|
+
body=await async_maybe_transform(
|
|
130
|
+
{
|
|
131
|
+
"connectors": connectors,
|
|
132
|
+
"target_team_id": target_team_id,
|
|
133
|
+
},
|
|
134
|
+
connector_clone_params.ConnectorCloneParams,
|
|
135
|
+
),
|
|
136
|
+
options=make_request_options(
|
|
137
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
138
|
+
),
|
|
139
|
+
cast_to=CloneConnectorsResponse,
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
class ConnectorResourceWithRawResponse:
|
|
144
|
+
def __init__(self, connector: ConnectorResource) -> None:
|
|
145
|
+
self._connector = connector
|
|
146
|
+
|
|
147
|
+
self.clone = to_raw_response_wrapper(
|
|
148
|
+
connector.clone,
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class AsyncConnectorResourceWithRawResponse:
|
|
153
|
+
def __init__(self, connector: AsyncConnectorResource) -> None:
|
|
154
|
+
self._connector = connector
|
|
155
|
+
|
|
156
|
+
self.clone = async_to_raw_response_wrapper(
|
|
157
|
+
connector.clone,
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
class ConnectorResourceWithStreamingResponse:
|
|
162
|
+
def __init__(self, connector: ConnectorResource) -> None:
|
|
163
|
+
self._connector = connector
|
|
164
|
+
|
|
165
|
+
self.clone = to_streamed_response_wrapper(
|
|
166
|
+
connector.clone,
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
class AsyncConnectorResourceWithStreamingResponse:
|
|
171
|
+
def __init__(self, connector: AsyncConnectorResource) -> None:
|
|
172
|
+
self._connector = connector
|
|
173
|
+
|
|
174
|
+
self.clone = async_to_streamed_response_wrapper(
|
|
175
|
+
connector.clone,
|
|
176
|
+
)
|
structify/resources/code.py
CHANGED
|
@@ -7,7 +7,7 @@ from typing import Optional
|
|
|
7
7
|
import httpx
|
|
8
8
|
|
|
9
9
|
from ..types import code_generate_code_params, code_interrupt_generation_params
|
|
10
|
-
from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
|
|
10
|
+
from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, SequenceNotStr, omit, not_given
|
|
11
11
|
from .._utils import maybe_transform, async_maybe_transform
|
|
12
12
|
from .._compat import cached_property
|
|
13
13
|
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
@@ -49,6 +49,8 @@ class CodeResource(SyncAPIResource):
|
|
|
49
49
|
prompt: str,
|
|
50
50
|
assistant_message_id: Optional[str] | Omit = omit,
|
|
51
51
|
config: Optional[code_generate_code_params.Config] | Omit = omit,
|
|
52
|
+
connector_ids: SequenceNotStr[str] | Omit = omit,
|
|
53
|
+
file_paths: SequenceNotStr[str] | Omit = omit,
|
|
52
54
|
trigger_workflow_execution: bool | Omit = omit,
|
|
53
55
|
user_message_id: Optional[str] | Omit = omit,
|
|
54
56
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
@@ -83,6 +85,8 @@ class CodeResource(SyncAPIResource):
|
|
|
83
85
|
"prompt": prompt,
|
|
84
86
|
"assistant_message_id": assistant_message_id,
|
|
85
87
|
"config": config,
|
|
88
|
+
"connector_ids": connector_ids,
|
|
89
|
+
"file_paths": file_paths,
|
|
86
90
|
"trigger_workflow_execution": trigger_workflow_execution,
|
|
87
91
|
"user_message_id": user_message_id,
|
|
88
92
|
},
|
|
@@ -158,6 +162,8 @@ class AsyncCodeResource(AsyncAPIResource):
|
|
|
158
162
|
prompt: str,
|
|
159
163
|
assistant_message_id: Optional[str] | Omit = omit,
|
|
160
164
|
config: Optional[code_generate_code_params.Config] | Omit = omit,
|
|
165
|
+
connector_ids: SequenceNotStr[str] | Omit = omit,
|
|
166
|
+
file_paths: SequenceNotStr[str] | Omit = omit,
|
|
161
167
|
trigger_workflow_execution: bool | Omit = omit,
|
|
162
168
|
user_message_id: Optional[str] | Omit = omit,
|
|
163
169
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
@@ -192,6 +198,8 @@ class AsyncCodeResource(AsyncAPIResource):
|
|
|
192
198
|
"prompt": prompt,
|
|
193
199
|
"assistant_message_id": assistant_message_id,
|
|
194
200
|
"config": config,
|
|
201
|
+
"connector_ids": connector_ids,
|
|
202
|
+
"file_paths": file_paths,
|
|
195
203
|
"trigger_workflow_execution": trigger_workflow_execution,
|
|
196
204
|
"user_message_id": user_message_id,
|
|
197
205
|
},
|
|
@@ -67,6 +67,7 @@ class ConnectorCatalogResource(SyncAPIResource):
|
|
|
67
67
|
def list(
|
|
68
68
|
self,
|
|
69
69
|
*,
|
|
70
|
+
include_inactive: bool | Omit = omit,
|
|
70
71
|
limit: int | Omit = omit,
|
|
71
72
|
offset: int | Omit = omit,
|
|
72
73
|
search: Optional[str] | Omit = omit,
|
|
@@ -78,9 +79,11 @@ class ConnectorCatalogResource(SyncAPIResource):
|
|
|
78
79
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
79
80
|
) -> ConnectorCatalogListResponse:
|
|
80
81
|
"""
|
|
81
|
-
List all connector catalog entries with their
|
|
82
|
+
List all connector catalog entries with their auth methods and logos
|
|
82
83
|
|
|
83
84
|
Args:
|
|
85
|
+
include_inactive: Include inactive auth methods (admin only)
|
|
86
|
+
|
|
84
87
|
search: Optional search query to filter by name, slug, or category (case-insensitive
|
|
85
88
|
substring match)
|
|
86
89
|
|
|
@@ -101,6 +104,7 @@ class ConnectorCatalogResource(SyncAPIResource):
|
|
|
101
104
|
timeout=timeout,
|
|
102
105
|
query=maybe_transform(
|
|
103
106
|
{
|
|
107
|
+
"include_inactive": include_inactive,
|
|
104
108
|
"limit": limit,
|
|
105
109
|
"offset": offset,
|
|
106
110
|
"search": search,
|
|
@@ -204,6 +208,7 @@ class AsyncConnectorCatalogResource(AsyncAPIResource):
|
|
|
204
208
|
async def list(
|
|
205
209
|
self,
|
|
206
210
|
*,
|
|
211
|
+
include_inactive: bool | Omit = omit,
|
|
207
212
|
limit: int | Omit = omit,
|
|
208
213
|
offset: int | Omit = omit,
|
|
209
214
|
search: Optional[str] | Omit = omit,
|
|
@@ -215,9 +220,11 @@ class AsyncConnectorCatalogResource(AsyncAPIResource):
|
|
|
215
220
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
216
221
|
) -> ConnectorCatalogListResponse:
|
|
217
222
|
"""
|
|
218
|
-
List all connector catalog entries with their
|
|
223
|
+
List all connector catalog entries with their auth methods and logos
|
|
219
224
|
|
|
220
225
|
Args:
|
|
226
|
+
include_inactive: Include inactive auth methods (admin only)
|
|
227
|
+
|
|
221
228
|
search: Optional search query to filter by name, slug, or category (case-insensitive
|
|
222
229
|
substring match)
|
|
223
230
|
|
|
@@ -238,6 +245,7 @@ class AsyncConnectorCatalogResource(AsyncAPIResource):
|
|
|
238
245
|
timeout=timeout,
|
|
239
246
|
query=await async_maybe_transform(
|
|
240
247
|
{
|
|
248
|
+
"include_inactive": include_inactive,
|
|
241
249
|
"limit": limit,
|
|
242
250
|
"offset": offset,
|
|
243
251
|
"search": search,
|
structify/resources/polars.py
CHANGED
|
@@ -16,7 +16,6 @@ from structify.types.entity_param import EntityParam
|
|
|
16
16
|
from structify.types.property_type_param import PropertyTypeParam
|
|
17
17
|
from structify.types.dataset_create_params import Relationship as CreateRelationshipParam
|
|
18
18
|
from structify.types.knowledge_graph_param import KnowledgeGraphParam
|
|
19
|
-
from structify.types.dataset_view_table_response import Properties
|
|
20
19
|
|
|
21
20
|
from ..types import TableParam
|
|
22
21
|
from .._compat import cached_property
|
|
@@ -35,6 +34,17 @@ from ..types.structure_run_async_params import SourceWebWeb
|
|
|
35
34
|
__all__ = ["PolarsResource"]
|
|
36
35
|
|
|
37
36
|
MAX_PARALLEL_REQUESTS = 20
|
|
37
|
+
STRUCTIFY_JOB_ID_COLUMN = "structify_job_id"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _collect_entities_with_job_ids(entities: Any) -> List[Dict[str, Any]]:
|
|
41
|
+
"""Collect entity properties with their first job_id."""
|
|
42
|
+
results: List[Dict[str, Any]] = []
|
|
43
|
+
for entity in entities:
|
|
44
|
+
row: Dict[str, Any] = dict(entity.properties)
|
|
45
|
+
row[STRUCTIFY_JOB_ID_COLUMN] = entity.job_ids[0] if entity.job_ids else None
|
|
46
|
+
results.append(row)
|
|
47
|
+
return results
|
|
38
48
|
|
|
39
49
|
|
|
40
50
|
class PolarsResource(SyncAPIResource):
|
|
@@ -164,8 +174,9 @@ class PolarsResource(SyncAPIResource):
|
|
|
164
174
|
# Get the node ID when the function is called, not when the batch is processed
|
|
165
175
|
node_id = get_node_id()
|
|
166
176
|
|
|
167
|
-
# Create the expected output schema
|
|
177
|
+
# Create the expected output schema with single job_id column
|
|
168
178
|
expected_schema = properties_to_schema(all_properties)
|
|
179
|
+
expected_schema[STRUCTIFY_JOB_ID_COLUMN] = pl.String
|
|
169
180
|
|
|
170
181
|
# Apply Structify enrich on the dataframe
|
|
171
182
|
def enhance_batch(batch_df: pl.DataFrame) -> pl.DataFrame:
|
|
@@ -249,11 +260,10 @@ class PolarsResource(SyncAPIResource):
|
|
|
249
260
|
# 3. Wait for all jobs to complete
|
|
250
261
|
title = f"Enriching {property_names} for {dataframe_name}"
|
|
251
262
|
self._client.jobs.wait_for_jobs(dataset_name=dataset_name, title=title, node_id=node_id)
|
|
252
|
-
# 4. Collect the results
|
|
253
|
-
results =
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
]
|
|
263
|
+
# 4. Collect the results with job_ids
|
|
264
|
+
results = _collect_entities_with_job_ids(
|
|
265
|
+
self._client.datasets.view_table(dataset=dataset_name, name=dataframe_name)
|
|
266
|
+
)
|
|
257
267
|
# 5. Return the results
|
|
258
268
|
return pl.DataFrame(results, schema=expected_schema)
|
|
259
269
|
|
|
@@ -296,6 +306,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
296
306
|
target_columns[col_name] = col_info.get("type", pl.String())
|
|
297
307
|
|
|
298
308
|
output_schema = _merge_schema_with_suffix(input_schema, target_columns, suffix=target_table_name)
|
|
309
|
+
output_schema[STRUCTIFY_JOB_ID_COLUMN] = pl.String
|
|
299
310
|
|
|
300
311
|
target_properties: list[Property] = [
|
|
301
312
|
Property(
|
|
@@ -412,6 +423,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
412
423
|
prop_name if prop_name not in input_schema else f"{prop_name}_{target_table_name}"
|
|
413
424
|
) # If the column already exists in the input schema, we need to suffix it with the target table name
|
|
414
425
|
result_row[eff] = target_entity.properties.get(prop_name)
|
|
426
|
+
result_row[STRUCTIFY_JOB_ID_COLUMN] = target_entity.job_ids[0] if target_entity.job_ids else None
|
|
415
427
|
result_rows.append(result_row)
|
|
416
428
|
|
|
417
429
|
# Handle source rows without relationships
|
|
@@ -422,6 +434,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
422
434
|
for prop_name in target_schema.keys():
|
|
423
435
|
eff = prop_name if prop_name not in input_schema else f"{prop_name}_{target_table_name}"
|
|
424
436
|
orphan_row[eff] = None
|
|
437
|
+
orphan_row[STRUCTIFY_JOB_ID_COLUMN] = None
|
|
425
438
|
result_rows.append(orphan_row)
|
|
426
439
|
|
|
427
440
|
if not result_rows:
|
|
@@ -440,14 +453,11 @@ class PolarsResource(SyncAPIResource):
|
|
|
440
453
|
dataframe_name: str,
|
|
441
454
|
dataframe_description: str,
|
|
442
455
|
use_proxy: bool = False,
|
|
443
|
-
include_job_ids: bool = False,
|
|
444
456
|
) -> LazyFrame:
|
|
445
457
|
"""
|
|
446
458
|
Enhance one or more columns of a `LazyFrame` directly from a URL.
|
|
447
459
|
|
|
448
|
-
|
|
449
|
-
output DataFrame with the Structify job id for each URL. The job id is not
|
|
450
|
-
stored in Structify.
|
|
460
|
+
Adds a `structify_job_id` column with the job id for each row.
|
|
451
461
|
"""
|
|
452
462
|
|
|
453
463
|
# Existing columns & their dtypes from the LazyFrame
|
|
@@ -475,8 +485,6 @@ class PolarsResource(SyncAPIResource):
|
|
|
475
485
|
for col_name, (dtype, desc) in new_columns_dict.items()
|
|
476
486
|
]
|
|
477
487
|
|
|
478
|
-
job_id_column: str | None = "job_id" if include_job_ids else None
|
|
479
|
-
|
|
480
488
|
all_properties = merge_column_properties(pre_existing_properties, new_column_properties)
|
|
481
489
|
|
|
482
490
|
dataset_name = f"enhance_{dataframe_name}_{uuid.uuid4().hex}"
|
|
@@ -504,10 +512,9 @@ class PolarsResource(SyncAPIResource):
|
|
|
504
512
|
# Get the node ID when the function is called, not when the batch is processed
|
|
505
513
|
node_id = get_node_id()
|
|
506
514
|
|
|
507
|
-
# Create the expected output schema
|
|
515
|
+
# Create the expected output schema with single job_id column
|
|
508
516
|
expected_schema = properties_to_schema(all_properties)
|
|
509
|
-
|
|
510
|
-
expected_schema[job_id_column] = pl.String
|
|
517
|
+
expected_schema[STRUCTIFY_JOB_ID_COLUMN] = pl.String
|
|
511
518
|
|
|
512
519
|
# Apply Structify scrape on the dataframe
|
|
513
520
|
def scrape_batch(batch_df: pl.DataFrame) -> pl.DataFrame:
|
|
@@ -537,8 +544,6 @@ class PolarsResource(SyncAPIResource):
|
|
|
537
544
|
entity_id_to_entity[entity_id] = entity
|
|
538
545
|
|
|
539
546
|
# 2. Run scrape jobs for each entity
|
|
540
|
-
job_ids_by_url: Dict[str, str] = {}
|
|
541
|
-
|
|
542
547
|
def scrape_entity_property(entity_id: str) -> None:
|
|
543
548
|
entity = entity_id_to_entity[entity_id]
|
|
544
549
|
url = entity["properties"].get(url_column)
|
|
@@ -549,7 +554,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
549
554
|
f"URL column {url_column} must be of string type, got {type(entity['properties'][url_column])}"
|
|
550
555
|
)
|
|
551
556
|
|
|
552
|
-
|
|
557
|
+
self._client.scrape.scrape(
|
|
553
558
|
dataset_name=dataset_name,
|
|
554
559
|
extraction_criteria=[
|
|
555
560
|
RequiredProperty(
|
|
@@ -566,8 +571,6 @@ class PolarsResource(SyncAPIResource):
|
|
|
566
571
|
use_proxy=use_proxy,
|
|
567
572
|
url=url,
|
|
568
573
|
)
|
|
569
|
-
if job_id_column is not None:
|
|
570
|
-
job_ids_by_url[url] = response.job_id
|
|
571
574
|
|
|
572
575
|
property_list = list(new_columns_dict.keys())
|
|
573
576
|
if len(property_list) == 1:
|
|
@@ -592,17 +595,10 @@ class PolarsResource(SyncAPIResource):
|
|
|
592
595
|
title = f"Scraping {property_names} for {dataframe_name}"
|
|
593
596
|
self._client.jobs.wait_for_jobs(dataset_name=dataset_name, title=title, node_id=node_id)
|
|
594
597
|
|
|
595
|
-
# 4. Collect the results
|
|
596
|
-
results
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
if job_id_column is not None:
|
|
600
|
-
url = properties.get(url_column)
|
|
601
|
-
if isinstance(url, str):
|
|
602
|
-
job_id = job_ids_by_url.get(url)
|
|
603
|
-
if job_id is not None:
|
|
604
|
-
properties[job_id_column] = job_id
|
|
605
|
-
results.append(properties)
|
|
598
|
+
# 4. Collect the results with job_id
|
|
599
|
+
results = _collect_entities_with_job_ids(
|
|
600
|
+
self._client.datasets.view_table(dataset=dataset_name, name=dataframe_name)
|
|
601
|
+
)
|
|
606
602
|
|
|
607
603
|
# 5. Return the results
|
|
608
604
|
return pl.DataFrame(results, schema=expected_schema)
|
|
@@ -657,6 +653,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
657
653
|
}
|
|
658
654
|
|
|
659
655
|
output_schema = _merge_schema_with_suffix(input_schema, scraped_columns, suffix=relationship["target_table"])
|
|
656
|
+
output_schema[STRUCTIFY_JOB_ID_COLUMN] = pl.String
|
|
660
657
|
|
|
661
658
|
properties: list[Property] = []
|
|
662
659
|
for col_name, col_info in scrape_schema.items():
|
|
@@ -758,6 +755,9 @@ class PolarsResource(SyncAPIResource):
|
|
|
758
755
|
result_row: dict[str, Any] = {
|
|
759
756
|
**scraped_entity.properties,
|
|
760
757
|
url_column: related_entity.properties[url_column],
|
|
758
|
+
STRUCTIFY_JOB_ID_COLUMN: scraped_entity.job_ids[0]
|
|
759
|
+
if scraped_entity.job_ids
|
|
760
|
+
else None,
|
|
761
761
|
}
|
|
762
762
|
result_rows.append(result_row)
|
|
763
763
|
offset += LIMIT
|
|
@@ -765,8 +765,11 @@ class PolarsResource(SyncAPIResource):
|
|
|
765
765
|
break
|
|
766
766
|
except Exception:
|
|
767
767
|
break
|
|
768
|
-
# Build scraped schema (pre-join, original names) incl. join column
|
|
769
|
-
scraped_schema = scraped_columns | {
|
|
768
|
+
# Build scraped schema (pre-join, original names) incl. join column and job_id
|
|
769
|
+
scraped_schema: Dict[str, pl.DataType] = scraped_columns | {
|
|
770
|
+
url_column: input_schema[url_column],
|
|
771
|
+
STRUCTIFY_JOB_ID_COLUMN: pl.String(),
|
|
772
|
+
}
|
|
770
773
|
|
|
771
774
|
# Fill missing columns in scraped results
|
|
772
775
|
for result_row in result_rows:
|
|
@@ -839,6 +842,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
839
842
|
polars_schema = pl.Schema(
|
|
840
843
|
[(path_column, pl.String())]
|
|
841
844
|
+ [(col_name, col_info.get("type", pl.String())) for col_name, col_info in schema.items()]
|
|
845
|
+
+ [(STRUCTIFY_JOB_ID_COLUMN, pl.String())]
|
|
842
846
|
)
|
|
843
847
|
|
|
844
848
|
assert path_column in document_paths.collect_schema(), (
|
|
@@ -931,9 +935,15 @@ class PolarsResource(SyncAPIResource):
|
|
|
931
935
|
|
|
932
936
|
# Get all of the entities with their job_ids
|
|
933
937
|
entities = self._client.datasets.view_table(dataset=dataset_name, name=table_name)
|
|
934
|
-
structured_results: List[Dict[str, Any]] = [
|
|
935
|
-
|
|
936
|
-
|
|
938
|
+
structured_results: List[Dict[str, Any]] = []
|
|
939
|
+
for entity in entities:
|
|
940
|
+
job_id = entity.job_ids[0] if entity.job_ids else None
|
|
941
|
+
result_row: Dict[str, Any] = {
|
|
942
|
+
**entity.properties,
|
|
943
|
+
path_column: job_to_pdf_path.get(job_id) if job_id else None,
|
|
944
|
+
STRUCTIFY_JOB_ID_COLUMN: job_id,
|
|
945
|
+
}
|
|
946
|
+
structured_results.append(result_row)
|
|
937
947
|
|
|
938
948
|
# Ensure all columns are present with None for missing values
|
|
939
949
|
for result_row in structured_results:
|
|
@@ -986,6 +996,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
986
996
|
all_properties = existing_properties + [new_property]
|
|
987
997
|
|
|
988
998
|
expected_schema = properties_to_schema(all_properties)
|
|
999
|
+
expected_schema[STRUCTIFY_JOB_ID_COLUMN] = pl.String
|
|
989
1000
|
if collected_df.is_empty():
|
|
990
1001
|
return pl.DataFrame(schema=expected_schema).lazy()
|
|
991
1002
|
|
|
@@ -1024,12 +1035,12 @@ class PolarsResource(SyncAPIResource):
|
|
|
1024
1035
|
node_id=node_id,
|
|
1025
1036
|
)
|
|
1026
1037
|
|
|
1027
|
-
# 3. Collect the results
|
|
1038
|
+
# 3. Collect the results with job_ids
|
|
1028
1039
|
title = f"Tagging {new_property_name} for {dataframe_name}"
|
|
1029
1040
|
self._client.jobs.wait_for_jobs(dataset_name=dataset_name, title=title, node_id=node_id)
|
|
1030
|
-
results =
|
|
1031
|
-
|
|
1032
|
-
|
|
1041
|
+
results = _collect_entities_with_job_ids(
|
|
1042
|
+
self._client.datasets.view_table(dataset=dataset_name, name=dataframe_name)
|
|
1043
|
+
)
|
|
1033
1044
|
|
|
1034
1045
|
# 4. Return the results
|
|
1035
1046
|
return pl.DataFrame(results, schema=expected_schema).lazy()
|
|
@@ -1157,6 +1168,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
1157
1168
|
"idx1": [match.target_entity_index for match in matches],
|
|
1158
1169
|
"idx2": [match.source_entity_index for match in matches],
|
|
1159
1170
|
"match_reason": [match.match_reason for match in matches],
|
|
1171
|
+
STRUCTIFY_JOB_ID_COLUMN: [match.job_id for match in matches],
|
|
1160
1172
|
}
|
|
1161
1173
|
else:
|
|
1162
1174
|
# No swap, return as normal
|
|
@@ -1164,6 +1176,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
1164
1176
|
"idx1": [match.source_entity_index for match in matches],
|
|
1165
1177
|
"idx2": [match.target_entity_index for match in matches],
|
|
1166
1178
|
"match_reason": [match.match_reason for match in matches],
|
|
1179
|
+
STRUCTIFY_JOB_ID_COLUMN: [match.job_id for match in matches],
|
|
1167
1180
|
}
|
|
1168
1181
|
|
|
1169
1182
|
return pl.DataFrame(matches_in_schema).lazy()
|
|
@@ -1182,7 +1195,7 @@ class PolarsResource(SyncAPIResource):
|
|
|
1182
1195
|
"/entity/upload_parquet",
|
|
1183
1196
|
params={"dataset": dataset_name, "table_name": table_name},
|
|
1184
1197
|
files={"file": ("data.parquet", parquet_bytes.getvalue(), "application/octet-stream")},
|
|
1185
|
-
headers=
|
|
1198
|
+
headers=self._client.auth_headers,
|
|
1186
1199
|
)
|
|
1187
1200
|
response.raise_for_status()
|
|
1188
1201
|
|
|
@@ -16,6 +16,7 @@ from .admin_dataset_return import AdminDatasetReturn as AdminDatasetReturn
|
|
|
16
16
|
from .impersonate_response import ImpersonateResponse as ImpersonateResponse
|
|
17
17
|
from .extend_trial_response import ExtendTrialResponse as ExtendTrialResponse
|
|
18
18
|
from .user_get_stats_params import UserGetStatsParams as UserGetStatsParams
|
|
19
|
+
from .connector_clone_params import ConnectorCloneParams as ConnectorCloneParams
|
|
19
20
|
from .expire_grants_response import ExpireGrantsResponse as ExpireGrantsResponse
|
|
20
21
|
from .grant_credits_response import GrantCreditsResponse as GrantCreditsResponse
|
|
21
22
|
from .user_get_stats_response import UserGetStatsResponse as UserGetStatsResponse
|
|
@@ -25,9 +26,11 @@ from .dataset_get_by_id_params import DatasetGetByIDParams as DatasetGetByIDPara
|
|
|
25
26
|
from .team_extend_trial_params import TeamExtendTrialParams as TeamExtendTrialParams
|
|
26
27
|
from .admin_teams_list_response import AdminTeamsListResponse as AdminTeamsListResponse
|
|
27
28
|
from .chat_template_list_params import ChatTemplateListParams as ChatTemplateListParams
|
|
29
|
+
from .clone_connectors_response import CloneConnectorsResponse as CloneConnectorsResponse
|
|
28
30
|
from .team_expire_grants_params import TeamExpireGrantsParams as TeamExpireGrantsParams
|
|
29
31
|
from .team_grant_credits_params import TeamGrantCreditsParams as TeamGrantCreditsParams
|
|
30
32
|
from .admin_delete_jobs_response import AdminDeleteJobsResponse as AdminDeleteJobsResponse
|
|
33
|
+
from .clone_connector_item_param import CloneConnectorItemParam as CloneConnectorItemParam
|
|
31
34
|
from .chat_template_create_params import ChatTemplateCreateParams as ChatTemplateCreateParams
|
|
32
35
|
from .chat_template_list_response import ChatTemplateListResponse as ChatTemplateListResponse
|
|
33
36
|
from .chat_template_update_params import ChatTemplateUpdateParams as ChatTemplateUpdateParams
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["CloneConnectorItemParam"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class CloneConnectorItemParam(TypedDict, total=False):
|
|
11
|
+
known_connector_type: Required[str]
|
|
12
|
+
|
|
13
|
+
name: Required[str]
|
|
14
|
+
|
|
15
|
+
source_connector_id: Required[str]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
from ..connector import Connector
|
|
7
|
+
|
|
8
|
+
__all__ = ["CloneConnectorsResponse"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CloneConnectorsResponse(BaseModel):
|
|
12
|
+
connectors: List[Connector]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Iterable
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from .clone_connector_item_param import CloneConnectorItemParam
|
|
9
|
+
|
|
10
|
+
__all__ = ["ConnectorCloneParams"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ConnectorCloneParams(TypedDict, total=False):
|
|
14
|
+
connectors: Required[Iterable[CloneConnectorItemParam]]
|
|
15
|
+
|
|
16
|
+
target_team_id: Required[str]
|
structify/types/chat_event.py
CHANGED
|
@@ -31,6 +31,10 @@ __all__ = [
|
|
|
31
31
|
"ReviewRequest",
|
|
32
32
|
"ReviewRequestReviewRequest",
|
|
33
33
|
"ReviewRequestReviewRequestNodeSummary",
|
|
34
|
+
"AttachedFile",
|
|
35
|
+
"AttachedFileAttachedFile",
|
|
36
|
+
"ConnectorRequest",
|
|
37
|
+
"ConnectorRequestConnectorRequest",
|
|
34
38
|
]
|
|
35
39
|
|
|
36
40
|
|
|
@@ -146,6 +150,8 @@ class InternalError(BaseModel):
|
|
|
146
150
|
|
|
147
151
|
|
|
148
152
|
class ReviewRequestReviewRequestNodeSummary(BaseModel):
|
|
153
|
+
in_dashboard: bool
|
|
154
|
+
|
|
149
155
|
name: str
|
|
150
156
|
|
|
151
157
|
data_preview: Optional[str] = None
|
|
@@ -161,6 +167,34 @@ class ReviewRequest(BaseModel):
|
|
|
161
167
|
review_request: ReviewRequestReviewRequest = FieldInfo(alias="ReviewRequest")
|
|
162
168
|
|
|
163
169
|
|
|
170
|
+
class AttachedFileAttachedFile(BaseModel):
|
|
171
|
+
path: str
|
|
172
|
+
|
|
173
|
+
image_bytes: Optional[object] = None
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
class AttachedFile(BaseModel):
|
|
177
|
+
attached_file: AttachedFileAttachedFile = FieldInfo(alias="AttachedFile")
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class ConnectorRequestConnectorRequest(BaseModel):
|
|
181
|
+
connector_id: str
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
class ConnectorRequest(BaseModel):
|
|
185
|
+
connector_request: ConnectorRequestConnectorRequest = FieldInfo(alias="ConnectorRequest")
|
|
186
|
+
|
|
187
|
+
|
|
164
188
|
ChatEvent: TypeAlias = Union[
|
|
165
|
-
TextMessage,
|
|
189
|
+
TextMessage,
|
|
190
|
+
Thinking,
|
|
191
|
+
File,
|
|
192
|
+
Action,
|
|
193
|
+
Connector,
|
|
194
|
+
ToolCall,
|
|
195
|
+
Question,
|
|
196
|
+
InternalError,
|
|
197
|
+
ReviewRequest,
|
|
198
|
+
AttachedFile,
|
|
199
|
+
ConnectorRequest,
|
|
166
200
|
]
|
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
from typing import Optional
|
|
6
6
|
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
7
7
|
|
|
8
|
+
from .._types import SequenceNotStr
|
|
8
9
|
from .._utils import PropertyInfo
|
|
9
10
|
|
|
10
11
|
__all__ = ["CodeGenerateCodeParams", "Config"]
|
|
@@ -20,6 +21,10 @@ class CodeGenerateCodeParams(TypedDict, total=False):
|
|
|
20
21
|
config: Optional[Config]
|
|
21
22
|
"""Configuration for chat session with system prompt and LLM key"""
|
|
22
23
|
|
|
24
|
+
connector_ids: Annotated[SequenceNotStr[str], PropertyInfo(alias="connectorIds")]
|
|
25
|
+
|
|
26
|
+
file_paths: Annotated[SequenceNotStr[str], PropertyInfo(alias="filePaths")]
|
|
27
|
+
|
|
23
28
|
trigger_workflow_execution: Annotated[bool, PropertyInfo(alias="triggerWorkflowExecution")]
|
|
24
29
|
|
|
25
30
|
user_message_id: Annotated[Optional[str], PropertyInfo(alias="userMessageId")]
|
|
@@ -57,6 +62,8 @@ class Config(TypedDict, total=False):
|
|
|
57
62
|
]
|
|
58
63
|
"""LLM model keys available in the system. Format: <provider>.<model-name>"""
|
|
59
64
|
|
|
65
|
+
max_steps: Optional[int]
|
|
66
|
+
|
|
60
67
|
reminder_message: Optional[str]
|
|
61
68
|
|
|
62
69
|
system_prompt: Optional[str]
|
|
@@ -118,6 +118,8 @@ class ConnectedEntity(BaseModel):
|
|
|
118
118
|
|
|
119
119
|
dataset_id: str
|
|
120
120
|
|
|
121
|
+
job_ids: List[str]
|
|
122
|
+
|
|
121
123
|
label: str
|
|
122
124
|
|
|
123
125
|
properties: Dict[str, ConnectedEntityProperties]
|
|
@@ -210,6 +212,8 @@ class Entity(BaseModel):
|
|
|
210
212
|
|
|
211
213
|
dataset_id: str
|
|
212
214
|
|
|
215
|
+
job_ids: List[str]
|
|
216
|
+
|
|
213
217
|
label: str
|
|
214
218
|
|
|
215
219
|
properties: Dict[str, EntityProperties]
|
|
@@ -5,6 +5,7 @@ from datetime import datetime
|
|
|
5
5
|
from typing_extensions import TypeAlias
|
|
6
6
|
|
|
7
7
|
from .._models import BaseModel
|
|
8
|
+
from .chat_event import ChatEvent
|
|
8
9
|
from .chat_prompt import ChatPrompt
|
|
9
10
|
|
|
10
11
|
__all__ = ["JobGetScrapersResponse", "JobGetScrapersResponseItem"]
|
|
@@ -25,6 +26,8 @@ class JobGetScrapersResponseItem(BaseModel):
|
|
|
25
26
|
|
|
26
27
|
code: Optional[str] = None
|
|
27
28
|
|
|
29
|
+
events: Optional[List[ChatEvent]] = None
|
|
30
|
+
|
|
28
31
|
next_page_code: Optional[str] = None
|
|
29
32
|
|
|
30
33
|
|
structify/types/tool_result.py
CHANGED
|
@@ -11,7 +11,6 @@ __all__ = [
|
|
|
11
11
|
"ToolResult",
|
|
12
12
|
"Error",
|
|
13
13
|
"Text",
|
|
14
|
-
"Image",
|
|
15
14
|
"CodeExecution",
|
|
16
15
|
"CodeExecutionCodeExecution",
|
|
17
16
|
"WebMarkdown",
|
|
@@ -21,6 +20,8 @@ __all__ = [
|
|
|
21
20
|
"ConnectorSearchConnectorSearch",
|
|
22
21
|
"ConnectorSearchConnectorSearchColumn",
|
|
23
22
|
"NodeLogs",
|
|
23
|
+
"Image",
|
|
24
|
+
"ImageImage",
|
|
24
25
|
]
|
|
25
26
|
|
|
26
27
|
|
|
@@ -32,10 +33,6 @@ class Text(BaseModel):
|
|
|
32
33
|
text: str = FieldInfo(alias="Text")
|
|
33
34
|
|
|
34
35
|
|
|
35
|
-
class Image(BaseModel):
|
|
36
|
-
image: object = FieldInfo(alias="Image")
|
|
37
|
-
|
|
38
|
-
|
|
39
36
|
class CodeExecutionCodeExecution(BaseModel):
|
|
40
37
|
return_code: int
|
|
41
38
|
|
|
@@ -94,6 +91,24 @@ class NodeLogs(BaseModel):
|
|
|
94
91
|
node_logs: List[str] = FieldInfo(alias="NodeLogs")
|
|
95
92
|
|
|
96
93
|
|
|
94
|
+
class ImageImage(BaseModel):
|
|
95
|
+
image_bytes: object
|
|
96
|
+
|
|
97
|
+
ocr_text: Optional[str] = None
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class Image(BaseModel):
|
|
101
|
+
image: ImageImage = FieldInfo(alias="Image")
|
|
102
|
+
|
|
103
|
+
|
|
97
104
|
ToolResult: TypeAlias = Union[
|
|
98
|
-
Literal["Pending", "NoResult"
|
|
105
|
+
Literal["Pending", "NoResult", "Completed"],
|
|
106
|
+
Error,
|
|
107
|
+
Text,
|
|
108
|
+
CodeExecution,
|
|
109
|
+
WebMarkdown,
|
|
110
|
+
WebSearch,
|
|
111
|
+
ConnectorSearch,
|
|
112
|
+
NodeLogs,
|
|
113
|
+
Image,
|
|
99
114
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: structifyai
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.179.0
|
|
4
4
|
Summary: The official Python library for the structify API
|
|
5
5
|
Project-URL: Homepage, https://github.com/StructifyAI/structify-python
|
|
6
6
|
Project-URL: Repository, https://github.com/StructifyAI/structify-python
|
|
@@ -11,7 +11,7 @@ structify/_resource.py,sha256=tJi4pDQooQZ_zJwEwrLj-U-ye2hC-cbmr1GzIwCT10Y,1118
|
|
|
11
11
|
structify/_response.py,sha256=RuNhMDiZUdPqEbmFJHDVI4FMPDszk8QjK9LVWm1Fagk,28806
|
|
12
12
|
structify/_streaming.py,sha256=n4C9M7ITmANYn9LaWHNoqJdIIyF7svLco2qst7u3M7U,10233
|
|
13
13
|
structify/_types.py,sha256=jj4p-m3vpUma0AdhPWIaljHZXeb4RKnrAusjVdpDy5Y,7597
|
|
14
|
-
structify/_version.py,sha256=
|
|
14
|
+
structify/_version.py,sha256=wgYCQOamvnt8XFcVc7rp8aKcLrFsK_GWWmssGhTAKiE,163
|
|
15
15
|
structify/pagination.py,sha256=ycybhWcpKk4ztsMcCA6C0WZiJejGrSx6bSr8LLskJUY,4346
|
|
16
16
|
structify/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
structify/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
|
|
@@ -31,7 +31,7 @@ structify/lib/__init__.py,sha256=Ueo7RB2lM1a3wkuifgjgBpqwQxhQUHJzvGorfJAfuUc,187
|
|
|
31
31
|
structify/lib/cost_confirmation.py,sha256=LvE76RQ0zVU17-qcYvQiH6NBtORIA7m4b72f1_YLMUg,2069
|
|
32
32
|
structify/resources/__init__.py,sha256=uEPBix75KmHK4iO50jocLO_psMYaebe-jkemfOjlz_U,12597
|
|
33
33
|
structify/resources/chat.py,sha256=RIYa-2vgc1I2G52cp5Ak6sIBJf04TWbH5IoGd-r38Co,91243
|
|
34
|
-
structify/resources/code.py,sha256=
|
|
34
|
+
structify/resources/code.py,sha256=geloVbg4Bul_2OOFJ9OfaGOafRaN2PtQcerttBKnyZE,11634
|
|
35
35
|
structify/resources/documents.py,sha256=QBuL5NQyW1XrncP4tjyb9yLFgqPgWCXa8Zj1uESy5j8,18180
|
|
36
36
|
structify/resources/entities.py,sha256=Fz4yCEdsxs-62bjmkYZY9Ku_tzDe73Q4xfqv_XHGe_M,81990
|
|
37
37
|
structify/resources/external.py,sha256=lVZCAEwNKTSGSZasGFibDmIC9N6MseJRkgBFCNvgcQU,3556
|
|
@@ -39,7 +39,7 @@ structify/resources/external_dataframe_proxy.py,sha256=DSn0YwWIembR__ZtDxVCJtyY3
|
|
|
39
39
|
structify/resources/jobs.py,sha256=gO1aSByi1dMvW90UDsMmNhLHFCOY4ENLkZcAx4gbLHY,30108
|
|
40
40
|
structify/resources/match.py,sha256=gDWEWnKwEoLbheQAMFltJCk2ysa_L9AuJMOaauM7c4Y,12248
|
|
41
41
|
structify/resources/nango.py,sha256=Zl0M1XhlVe61jHVd-SdYI9uEbEhIRmskvlk7Xp0Lh8g,9166
|
|
42
|
-
structify/resources/polars.py,sha256=
|
|
42
|
+
structify/resources/polars.py,sha256=9uluqVdLXu5ZpR9-v7B6i3TJVV47zKtILOJwAzz5lkU,60817
|
|
43
43
|
structify/resources/projects.py,sha256=YDikBDB9D1EXyZ2GyRx4GlpQ83snw51YlNuU1sLHqho,14117
|
|
44
44
|
structify/resources/public_sessions.py,sha256=_JmssE0MMjeGdxT0FWtrkcceSV4skeEkVGYeO2FkJes,9976
|
|
45
45
|
structify/resources/sandbox.py,sha256=KgpZ623G6T_3_oovCgjlxO81M63NanMBAezVDdesOCc,12807
|
|
@@ -55,9 +55,10 @@ structify/resources/whitelabel_service.py,sha256=cqGBpRegtJRjt5WFNPCXTwyGKHTAbBU
|
|
|
55
55
|
structify/resources/wiki.py,sha256=0j5qrgQ72LE7GsuLyy4nylnEuU0VDSjTMRejaHlqa-8,19490
|
|
56
56
|
structify/resources/workflow.py,sha256=D8gnt22usKoY9iA3HTNlbQyWTykNUXl2m3rFsPAKZZc,9273
|
|
57
57
|
structify/resources/workflow_schedule.py,sha256=bP7rxm0OsW27zt2Y5EF7EILfFzP3lKFIaRRr_8MbZvA,29807
|
|
58
|
-
structify/resources/admin/__init__.py,sha256=
|
|
59
|
-
structify/resources/admin/admin.py,sha256=
|
|
58
|
+
structify/resources/admin/__init__.py,sha256=QbNLwto24WRX1DgTltNy7lRPrwp4bgRla_pmd0fRedM,4362
|
|
59
|
+
structify/resources/admin/admin.py,sha256=pRiBhmMOpM_k7aYtKA9yl1tfF5kz_KsTe4K-7GIvXMA,11549
|
|
60
60
|
structify/resources/admin/chat_templates.py,sha256=tsWs-2tI-8nybzQn-lNERBAA81LebwR0giW7ZrPgnG8,14727
|
|
61
|
+
structify/resources/admin/connector.py,sha256=YXAONtTL-fsgiR-R5d9tXolm2khuMnvGVPXaMruYQiw,6505
|
|
61
62
|
structify/resources/admin/dataset.py,sha256=1AEVHzMvgr96bbJjY3fcWRTDwq1zJAmMzYQB9kjSnL8,6096
|
|
62
63
|
structify/resources/admin/functional_tests.py,sha256=ZdGnpHBSz1qEYf5oE5W8SjhvPQUtlP5plh6IvceYjbI,23977
|
|
63
64
|
structify/resources/admin/jobs.py,sha256=dVTzYPFyx4RdoC52gnacZ9cC4gPVuvCQejqp0HWQ4bA,11918
|
|
@@ -66,7 +67,7 @@ structify/resources/admin/teams.py,sha256=-xR3N8tGF2uI4SMHwsLnAf6q36z42hLHAWDPA8
|
|
|
66
67
|
structify/resources/admin/users.py,sha256=F0xis-9-Wo5qQHLGvAnJ9Ekao4Ssew043z9sCbOeEH8,17496
|
|
67
68
|
structify/resources/connector_catalog/__init__.py,sha256=uwvbyu4gu4pZ_px3-Nhhh2lxiosNwQGlqW-IIbbWgx8,1120
|
|
68
69
|
structify/resources/connector_catalog/admin.py,sha256=2ob0yPRr_zyoHGs-XTIupwCCnO9LgddXP-ToAJtTxmw,60801
|
|
69
|
-
structify/resources/connector_catalog/connector_catalog.py,sha256=
|
|
70
|
+
structify/resources/connector_catalog/connector_catalog.py,sha256=0cl-NXRalMWtcsWXkKEAPlxZ_slhR1VW4FsPBE81iWY,15533
|
|
70
71
|
structify/resources/connectors/__init__.py,sha256=XshER9L_6E2kY_zKa1VTkY_UmEIAoi3MkeFYJdGGH0U,1133
|
|
71
72
|
structify/resources/connectors/connectors.py,sha256=AanoFJqH01EN6Hfsll9JOMnHIGgxA5Co8gewnASHtas,89020
|
|
72
73
|
structify/resources/connectors/type_snippets.py,sha256=dawxpQbDQhqKPHpRQApti0OhgMI-rQUHeRuaDKgU-wM,6585
|
|
@@ -90,11 +91,11 @@ structify/types/chat_admin_issue_found_params.py,sha256=N5YMgm6O-Yr3sXZb2sWDHdyN
|
|
|
90
91
|
structify/types/chat_copy_node_output_by_code_hash_params.py,sha256=gP4V2Y0_Rb4-kwoEceClJLgjVdWv7bgcI4qqQIvdNv8,356
|
|
91
92
|
structify/types/chat_copy_node_output_by_code_hash_response.py,sha256=Cst1RK9jDrMAKEyzLIk5_-D6YUbO-AIVllYui2sy2aQ,272
|
|
92
93
|
structify/types/chat_copy_params.py,sha256=tfA3jdduKDJeHiYjWWKdHifRMp1sCGyGQcYHFuMFdnE,425
|
|
93
|
-
structify/types/chat_create_session_params.py,sha256=
|
|
94
|
+
structify/types/chat_create_session_params.py,sha256=3pQxz7kuIlXjcBzosAj5B9NYv3r5fZJUSve6wo11l2w,1840
|
|
94
95
|
structify/types/chat_delete_files_params.py,sha256=Rv24bWe1CK524xobl9-_APx5GG8KTqIwEtUgYIUlMXc,343
|
|
95
96
|
structify/types/chat_delete_files_response.py,sha256=ZoFJjfZqn_rVuwiFhsuFigN_AQHh_DRkb5KRj7J_49g,225
|
|
96
97
|
structify/types/chat_dependency.py,sha256=J8JLY6kBjFt4dgf-_Vk_HEjxS5R6_6VnTQue2JzZRug,415
|
|
97
|
-
structify/types/chat_event.py,sha256=
|
|
98
|
+
structify/types/chat_event.py,sha256=NKiIZcC98brPmW0T3mGJNyuvDpHdZ4_0EuRirsoSDBo,3965
|
|
98
99
|
structify/types/chat_get_git_commit_response.py,sha256=6_Bpdh6HU5zwGi219Q14a0c0tN-qtJN9RPrDudeZu3U,440
|
|
99
100
|
structify/types/chat_get_partial_chats_response.py,sha256=LS4eF1-GW2N5mZSJVZUoMu9Q77Y7Fo6bIIUS3P7zwh4,290
|
|
100
101
|
structify/types/chat_get_session_timeline_response.py,sha256=6SM_FoDMxNn75rpqPKJj1C1_YXjONvncMnYkf8V8knA,1684
|
|
@@ -114,12 +115,12 @@ structify/types/chat_update_session_favorite_params.py,sha256=UNi0YujSs1gCSry2jK
|
|
|
114
115
|
structify/types/chat_update_session_params.py,sha256=5NQZx-j-W2xQGlX0GU-9vwyQt0QunlifWY2MpRtrEv8,382
|
|
115
116
|
structify/types/chat_update_visibility_params.py,sha256=uWtgq4zb_TSO4hIsY0FmdWaljB_20wpjl6IQhRMibTg,361
|
|
116
117
|
structify/types/chat_visibility.py,sha256=GpTgjpcupE1z9Iul8fxOrlMoP_2wjQ_7Z0rJ2y9qO5Q,244
|
|
117
|
-
structify/types/code_generate_code_params.py,sha256=
|
|
118
|
+
structify/types/code_generate_code_params.py,sha256=d1GmeAN35JdwdxWfAIObWFUs7QOm8xDx2Q5OvuFgvNg,2348
|
|
118
119
|
structify/types/code_interrupt_generation_params.py,sha256=1Y9VOgObIJFyYgAEkUuWZRKKV5-4HcoRA6p5iSEnF3s,410
|
|
119
120
|
structify/types/connector.py,sha256=hqfk8x1ZM39idvAd4wXLm1QNrnT3kRgxEuhk8O28-B0,1069
|
|
120
121
|
structify/types/connector_auth_method.py,sha256=iHBmcNbi74mDjFd_m4-HrGrZoV9_WRSFtrOY0fz9NhQ,562
|
|
121
122
|
structify/types/connector_auth_method_with_fields.py,sha256=EABCugmJ8ahZNhSqvNQAESjHpD3kozh4GPop2OZpSMw,519
|
|
122
|
-
structify/types/connector_catalog_list_params.py,sha256=
|
|
123
|
+
structify/types/connector_catalog_list_params.py,sha256=I6VUDKLGNd_p2ePnb1OeHHdaFW2HT5Hw26fSJR4xR3E,551
|
|
123
124
|
structify/types/connector_catalog_list_response.py,sha256=0e1AQU59zTfN-bvx1GCUElnaEiyW104XHUIYvZ4Gkmg,503
|
|
124
125
|
structify/types/connector_catalog_with_methods.py,sha256=EZdXqN6oZggX-SYXUrn_hDgCRHeMY1zNo7pY1q0vX4E,532
|
|
125
126
|
structify/types/connector_category.py,sha256=2YnDoj4lXtyfRTVhSi-7a5InFuOUn26SqeVeaCSS4lE,245
|
|
@@ -185,7 +186,7 @@ structify/types/dataset_view_relationships_response.py,sha256=IC5Ot90K_F7wSPBSz7
|
|
|
185
186
|
structify/types/dataset_view_table_params.py,sha256=vD_qKTv13_mbBP4zIorOSO--RL2qp5pQRxXPdwPBuio,985
|
|
186
187
|
structify/types/dataset_view_table_response.py,sha256=Ultse5-ichgV1vnD0UJmfslMpEqQlnqPmRmQYId0gkA,1846
|
|
187
188
|
structify/types/dataset_view_tables_with_relationships_params.py,sha256=0qCpvobbsnHIij0Z4nAJfDPl_bf8zGoER-3Cmve7Yxw,1021
|
|
188
|
-
structify/types/dataset_view_tables_with_relationships_response.py,sha256
|
|
189
|
+
structify/types/dataset_view_tables_with_relationships_response.py,sha256=-ylxL-VlT5WaIPl-YIX_33OdbViRtCJLSNiIk1mvQYI,5718
|
|
189
190
|
structify/types/delete_chat_session_response.py,sha256=HuoT7Z2lgj4Elha7SBWf7dBamo-vjoGY5kedaoAYgUw,292
|
|
190
191
|
structify/types/delete_project_response.py,sha256=58f-dGQrLRJROkKAafEjy8FHOt7sMef0rc23-H5h8G0,216
|
|
191
192
|
structify/types/delete_schema_object_request_param.py,sha256=5Yg2DZddB0NfZJWwB-da7bKP0434CknxWeFl_-ohF2c,865
|
|
@@ -262,7 +263,7 @@ structify/types/image.py,sha256=FpYU3gDZnet0wO17e2uHzcyRUD6E1ssSgv63Ew0DzjU,269
|
|
|
262
263
|
structify/types/invitation_details_response.py,sha256=TmyeM4mW4Kb6L0d7Ook9cH3g8vzfQYPnvZDIBdgVAO4,272
|
|
263
264
|
structify/types/job_cancel_response.py,sha256=y8M8qPkcXT-pTi4IwQ0JBJQzXeAQIs3u2OsaVeGBTtc,1224
|
|
264
265
|
structify/types/job_event_body.py,sha256=pO11fTm5sGvQ6cx7NvWTitUaunSqdRo-d5tkyh4KPsk,3906
|
|
265
|
-
structify/types/job_get_scrapers_response.py,sha256
|
|
266
|
+
structify/types/job_get_scrapers_response.py,sha256=JsbPIyUlLS3iZNyYulU8X7eF_XOmhRqYjoiGh8lnfQg,774
|
|
266
267
|
structify/types/job_get_source_entities_response.py,sha256=vlGKFkMKjII48EexIEBbls6-PAVYDDkmR1__aKjuiUo,3379
|
|
267
268
|
structify/types/job_list_params.py,sha256=i_MYi4vIFC6Dq5I4E4htYwZejqRE5qAf2lgg_SRBuKg,1012
|
|
268
269
|
structify/types/job_list_response.py,sha256=mKWo7HlbMFtsGMjQHLwT8SCuV_Ktmf6pIAqoPx9a5HU,5134
|
|
@@ -372,7 +373,7 @@ structify/types/teams_link_code_response.py,sha256=p81nvCP4KeGVUgQiiaFwAlLMRaGnG
|
|
|
372
373
|
structify/types/token_response.py,sha256=N75RMh9ZF05z5Ubc_Pu2pePe3MN7Yqn2GB1FJ8FQJZ0,408
|
|
373
374
|
structify/types/tool_invocation.py,sha256=HCc_nFmfjm5MnoDKDbtnh7TIvLEH7gvsBI4IIU0AxO4,7995
|
|
374
375
|
structify/types/tool_metadata.py,sha256=drtuS9ZQm4cB2KScB1pycX1ifjhGwSUMJm9TFv1SHuI,382
|
|
375
|
-
structify/types/tool_result.py,sha256=
|
|
376
|
+
structify/types/tool_result.py,sha256=ac97GlYBN9GoVcbRRCS42krwzsf8-mHxw-Au3vIsP2I,2172
|
|
376
377
|
structify/types/update_member_role_response.py,sha256=q1jTM0lFmzvH8ki7GcSQAh-5cN7VnLF6Jg_IRdA4AqE,222
|
|
377
378
|
structify/types/update_table_response.py,sha256=ypJEzW8JcLOmLpoZq46i7ADFUkHqBGeo0AhtiSq8HAk,1156
|
|
378
379
|
structify/types/update_team_response.py,sha256=AOm2-jzpjF3UVRh3msyc8W00l-hNpk_SqmMI3oK_YBE,230
|
|
@@ -405,7 +406,7 @@ structify/types/workflow_session.py,sha256=TowRK1sUm0sFlN2DTV6wAnFkFFl3U70svD8V2
|
|
|
405
406
|
structify/types/workflow_session_edge.py,sha256=GDlkWnOwnArC80Q1e04FfBkREOvh5HSs7Ij4K2rNR1Q,334
|
|
406
407
|
structify/types/workflow_session_node.py,sha256=dSC6uG4Rhf7vo5hXVsuOfPBAjPj26bQNEy_FGUKAqkE,1159
|
|
407
408
|
structify/types/workflow_stop_params.py,sha256=DLTGDSENmcdNQoV_LnsL0lvf3i3NtupkpiBGBpZakUs,298
|
|
408
|
-
structify/types/admin/__init__.py,sha256=
|
|
409
|
+
structify/types/admin/__init__.py,sha256=nXPN4Q3xY3UQU9c6bmfep1li_pnj9j9N8HMSBgGXfbU,3802
|
|
409
410
|
structify/types/admin/admin_dataset_return.py,sha256=hRSCIBTiaCb1O1lcxsKyxnzGiYuIUEvnMxXkNbyj4_U,495
|
|
410
411
|
structify/types/admin/admin_delete_jobs_response.py,sha256=c3IO7bCqAoEN9PHYM88gO0JT0e6hCaHyIBtxC84Tw38,225
|
|
411
412
|
structify/types/admin/admin_list_jobs_response.py,sha256=27IoyuBSaBJPnSSyiZt3q5dHfeyBzrGtnq7nGvJcapM,4867
|
|
@@ -416,6 +417,9 @@ structify/types/admin/chat_template_create_params.py,sha256=GCP3Uhb1_wPfaC4iFkQF
|
|
|
416
417
|
structify/types/admin/chat_template_list_params.py,sha256=reCVbp32J8xxQodoRZOUYdgMJAb7JV90gjQ-q6-bv80,320
|
|
417
418
|
structify/types/admin/chat_template_list_response.py,sha256=PWierLwWeuthLC8cKaffmJAt7gCTNedvtjfwqF5wLt8,291
|
|
418
419
|
structify/types/admin/chat_template_update_params.py,sha256=1MnZNe4q6a_dtodbR9d8G86xKZQzew-xFxDkW2by5Rs,472
|
|
420
|
+
structify/types/admin/clone_connector_item_param.py,sha256=aFEU0ffw2pPH9PkwYkmN96rNRwBwyxiThYBb-MjybYY,374
|
|
421
|
+
structify/types/admin/clone_connectors_response.py,sha256=8tI4t8BlNcP-KR1PGduSc5hYtD2CLiyHR3I1_PBCN_Y,294
|
|
422
|
+
structify/types/admin/connector_clone_params.py,sha256=6_FYEQv9s5qC-Ef8Qkmg1FVVpnrf39MYItYpqF_pn2A,451
|
|
419
423
|
structify/types/admin/create_subscription_response.py,sha256=JFm1lbs87TDnqLoI-7wNd058BJt6GYTUV5UXojldM_w,275
|
|
420
424
|
structify/types/admin/dataset_get_by_id_params.py,sha256=upS3EraM1yOXntE91YlE0H5NMfMRT-Ne9QBTZNORYJs,325
|
|
421
425
|
structify/types/admin/expire_grants_response.py,sha256=qdsKTN4Lbg805rSy4QUEYUGjMfV8ptjO-97IfHliYLU,238
|
|
@@ -492,7 +496,7 @@ structify/types/user/stripe_create_portal_session_params.py,sha256=5AYRC8z_SlKmd
|
|
|
492
496
|
structify/types/user/stripe_create_session_params.py,sha256=DFcNLNzEWeupkGQ9J5PafsuL_bIU9cLEIhAmFPsRlfo,387
|
|
493
497
|
structify/types/user/stripe_create_subscription_params.py,sha256=d8HfiC94gJbG-cC_WvBz6xYCvxKJO_EP2yyVmVvufrU,424
|
|
494
498
|
structify/types/user/subscription_plan.py,sha256=qKJMM-zPpYolYC1DlypOwPpxlyJBLkQqFK_0VpwktJs,222
|
|
495
|
-
structifyai-1.
|
|
496
|
-
structifyai-1.
|
|
497
|
-
structifyai-1.
|
|
498
|
-
structifyai-1.
|
|
499
|
+
structifyai-1.179.0.dist-info/METADATA,sha256=ZntSnSVPD0ghtVBXKP4ejLLRTP16yvtcTVfH2QFZCPw,16399
|
|
500
|
+
structifyai-1.179.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
501
|
+
structifyai-1.179.0.dist-info/licenses/LICENSE,sha256=9CwgrmGz3rZSTT-KqGc1gua-7g8B4ThTgMtUgPALh5c,11339
|
|
502
|
+
structifyai-1.179.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|