vellum-ai 0.8.22__py3-none-any.whl → 0.8.25__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- vellum/__init__.py +26 -0
- vellum/core/client_wrapper.py +1 -1
- vellum/lib/test_suites/resources.py +27 -8
- vellum/lib/utils/typing.py +10 -0
- vellum/lib/utils/uuid.py +10 -0
- vellum/resources/__init__.py +2 -0
- vellum/resources/folder_entities/__init__.py +3 -0
- vellum/resources/folder_entities/client.py +200 -3
- vellum/resources/folder_entities/types/__init__.py +5 -0
- vellum/resources/folder_entities/types/folder_entities_list_request_entity_status.py +5 -0
- vellum/resources/test_suite_runs/client.py +8 -10
- vellum/types/__init__.py +24 -0
- vellum/types/folder_entity.py +16 -0
- vellum/types/folder_entity_document_index.py +26 -0
- vellum/types/folder_entity_document_index_data.py +25 -0
- vellum/types/folder_entity_folder.py +26 -0
- vellum/types/folder_entity_folder_data.py +24 -0
- vellum/types/folder_entity_prompt_sandbox.py +26 -0
- vellum/types/folder_entity_prompt_sandbox_data.py +26 -0
- vellum/types/folder_entity_test_suite.py +26 -0
- vellum/types/folder_entity_test_suite_data.py +25 -0
- vellum/types/folder_entity_workflow_sandbox.py +26 -0
- vellum/types/folder_entity_workflow_sandbox_data.py +26 -0
- vellum/types/paginated_folder_entity_list.py +23 -0
- {vellum_ai-0.8.22.dist-info → vellum_ai-0.8.25.dist-info}/METADATA +1 -1
- {vellum_ai-0.8.22.dist-info → vellum_ai-0.8.25.dist-info}/RECORD +28 -12
- {vellum_ai-0.8.22.dist-info → vellum_ai-0.8.25.dist-info}/LICENSE +0 -0
- {vellum_ai-0.8.22.dist-info → vellum_ai-0.8.25.dist-info}/WHEEL +0 -0
vellum/__init__.py
CHANGED
@@ -99,6 +99,17 @@ from .types import (
|
|
99
99
|
ExternalTestCaseExecution,
|
100
100
|
ExternalTestCaseExecutionRequest,
|
101
101
|
FinishReasonEnum,
|
102
|
+
FolderEntity,
|
103
|
+
FolderEntityDocumentIndex,
|
104
|
+
FolderEntityDocumentIndexData,
|
105
|
+
FolderEntityFolder,
|
106
|
+
FolderEntityFolderData,
|
107
|
+
FolderEntityPromptSandbox,
|
108
|
+
FolderEntityPromptSandboxData,
|
109
|
+
FolderEntityTestSuite,
|
110
|
+
FolderEntityTestSuiteData,
|
111
|
+
FolderEntityWorkflowSandbox,
|
112
|
+
FolderEntityWorkflowSandboxData,
|
102
113
|
FulfilledAdHocExecutePromptEvent,
|
103
114
|
FulfilledEnum,
|
104
115
|
FulfilledExecutePromptEvent,
|
@@ -225,6 +236,7 @@ from .types import (
|
|
225
236
|
OpenAiVectorizerTextEmbeddingAda002,
|
226
237
|
OpenAiVectorizerTextEmbeddingAda002Request,
|
227
238
|
PaginatedDocumentIndexReadList,
|
239
|
+
PaginatedFolderEntityList,
|
228
240
|
PaginatedSlimDeploymentReadList,
|
229
241
|
PaginatedSlimDocumentList,
|
230
242
|
PaginatedSlimWorkflowDeploymentList,
|
@@ -457,6 +469,7 @@ from .errors import BadRequestError, ForbiddenError, InternalServerError, NotFou
|
|
457
469
|
from .resources import (
|
458
470
|
DeploymentsListRequestStatus,
|
459
471
|
DocumentIndexesListRequestStatus,
|
472
|
+
FolderEntitiesListRequestEntityStatus,
|
460
473
|
WorkflowDeploymentsListRequestStatus,
|
461
474
|
ad_hoc,
|
462
475
|
deployments,
|
@@ -577,6 +590,18 @@ __all__ = [
|
|
577
590
|
"ExternalTestCaseExecution",
|
578
591
|
"ExternalTestCaseExecutionRequest",
|
579
592
|
"FinishReasonEnum",
|
593
|
+
"FolderEntitiesListRequestEntityStatus",
|
594
|
+
"FolderEntity",
|
595
|
+
"FolderEntityDocumentIndex",
|
596
|
+
"FolderEntityDocumentIndexData",
|
597
|
+
"FolderEntityFolder",
|
598
|
+
"FolderEntityFolderData",
|
599
|
+
"FolderEntityPromptSandbox",
|
600
|
+
"FolderEntityPromptSandboxData",
|
601
|
+
"FolderEntityTestSuite",
|
602
|
+
"FolderEntityTestSuiteData",
|
603
|
+
"FolderEntityWorkflowSandbox",
|
604
|
+
"FolderEntityWorkflowSandboxData",
|
580
605
|
"ForbiddenError",
|
581
606
|
"FulfilledAdHocExecutePromptEvent",
|
582
607
|
"FulfilledEnum",
|
@@ -706,6 +731,7 @@ __all__ = [
|
|
706
731
|
"OpenAiVectorizerTextEmbeddingAda002",
|
707
732
|
"OpenAiVectorizerTextEmbeddingAda002Request",
|
708
733
|
"PaginatedDocumentIndexReadList",
|
734
|
+
"PaginatedFolderEntityList",
|
709
735
|
"PaginatedSlimDeploymentReadList",
|
710
736
|
"PaginatedSlimDocumentList",
|
711
737
|
"PaginatedSlimWorkflowDeploymentList",
|
vellum/core/client_wrapper.py
CHANGED
@@ -17,7 +17,7 @@ class BaseClientWrapper:
|
|
17
17
|
headers: typing.Dict[str, str] = {
|
18
18
|
"X-Fern-Language": "Python",
|
19
19
|
"X-Fern-SDK-Name": "vellum-ai",
|
20
|
-
"X-Fern-SDK-Version": "0.8.
|
20
|
+
"X-Fern-SDK-Version": "0.8.25",
|
21
21
|
}
|
22
22
|
headers["X_API_KEY"] = self.api_key
|
23
23
|
return headers
|
@@ -4,9 +4,10 @@ import logging
|
|
4
4
|
import time
|
5
5
|
from functools import cached_property
|
6
6
|
from typing import Callable, Generator, List, cast, Iterable
|
7
|
+
from uuid import UUID
|
7
8
|
|
8
9
|
from vellum import TestSuiteRunRead, TestSuiteRunMetricNumberOutput
|
9
|
-
from vellum.client import Vellum
|
10
|
+
from vellum.client import Vellum, OMIT
|
10
11
|
from vellum.lib.test_suites.constants import (
|
11
12
|
DEFAULT_MAX_POLLING_DURATION_MS,
|
12
13
|
DEFAULT_POLLING_INTERVAL_MS,
|
@@ -14,6 +15,8 @@ from vellum.lib.test_suites.constants import (
|
|
14
15
|
from vellum.lib.test_suites.exceptions import TestSuiteRunResultsException
|
15
16
|
from vellum.lib.utils.env import get_api_key
|
16
17
|
from vellum.lib.utils.paginator import PaginatedResults, get_all_results
|
18
|
+
from vellum.lib.utils.typing import cast_not_optional
|
19
|
+
from vellum.lib.utils.uuid import is_valid_uuid
|
17
20
|
from vellum.types import (
|
18
21
|
ExternalTestCaseExecutionRequest,
|
19
22
|
NamedTestCaseVariableValueRequest,
|
@@ -198,7 +201,9 @@ class VellumTestSuiteRunResults:
|
|
198
201
|
output_values = self.get_numeric_metric_output_values(
|
199
202
|
metric_identifier=metric_identifier, output_identifier=output_identifier
|
200
203
|
)
|
201
|
-
return sum(
|
204
|
+
return sum(
|
205
|
+
cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values))
|
206
|
+
) / len(output_values)
|
202
207
|
|
203
208
|
def get_min_metric_output(
|
204
209
|
self, metric_identifier: str | None = None, output_identifier: str | None = None
|
@@ -207,7 +212,9 @@ class VellumTestSuiteRunResults:
|
|
207
212
|
output_values = self.get_numeric_metric_output_values(
|
208
213
|
metric_identifier=metric_identifier, output_identifier=output_identifier
|
209
214
|
)
|
210
|
-
return min(
|
215
|
+
return min(
|
216
|
+
cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values))
|
217
|
+
)
|
211
218
|
|
212
219
|
def get_max_metric_output(
|
213
220
|
self, metric_identifier: str | None = None, output_identifier: str | None = None
|
@@ -216,7 +223,9 @@ class VellumTestSuiteRunResults:
|
|
216
223
|
output_values = self.get_numeric_metric_output_values(
|
217
224
|
metric_identifier=metric_identifier, output_identifier=output_identifier
|
218
225
|
)
|
219
|
-
return max(
|
226
|
+
return max(
|
227
|
+
cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values))
|
228
|
+
)
|
220
229
|
|
221
230
|
def wait_until_complete(self) -> None:
|
222
231
|
"""Wait until the Test Suite Run is no longer in a QUEUED or RUNNING state."""
|
@@ -282,16 +291,25 @@ class VellumTestSuiteRunResults:
|
|
282
291
|
class VellumTestSuite:
|
283
292
|
"""A utility class that provides methods for running a Vellum Test Suite and interacting with its results."""
|
284
293
|
|
294
|
+
_test_suite_id: str | None
|
295
|
+
_test_suite_name: str | None
|
296
|
+
|
285
297
|
def __init__(
|
286
298
|
self,
|
287
|
-
|
299
|
+
test_suite_identifier: str | UUID,
|
288
300
|
*,
|
289
301
|
client: Vellum | None = None,
|
290
302
|
) -> None:
|
291
303
|
self.client = client or Vellum(
|
292
304
|
api_key=get_api_key(),
|
293
305
|
)
|
294
|
-
|
306
|
+
|
307
|
+
if is_valid_uuid(test_suite_identifier):
|
308
|
+
self._test_suite_id = str(test_suite_identifier)
|
309
|
+
self._test_suite_name = None
|
310
|
+
else:
|
311
|
+
self._test_suite_id = None
|
312
|
+
self._test_suite_name = str(test_suite_identifier)
|
295
313
|
|
296
314
|
def run_external(
|
297
315
|
self,
|
@@ -305,7 +323,7 @@ class VellumTestSuite:
|
|
305
323
|
Returns a wrapper that polls the generated Test Suite Run until it's done running and returns its results.
|
306
324
|
"""
|
307
325
|
test_cases = self.client.test_suites.list_test_suite_test_cases(
|
308
|
-
id=self._test_suite_id
|
326
|
+
id=cast_not_optional(self._test_suite_id or self._test_suite_name)
|
309
327
|
)
|
310
328
|
executions: List[ExternalTestCaseExecutionRequest] = []
|
311
329
|
|
@@ -320,7 +338,8 @@ class VellumTestSuite:
|
|
320
338
|
)
|
321
339
|
|
322
340
|
test_suite_run = self.client.test_suite_runs.create(
|
323
|
-
test_suite_id=self._test_suite_id,
|
341
|
+
test_suite_id=self._test_suite_id or OMIT,
|
342
|
+
test_suite_name=self._test_suite_name or OMIT,
|
324
343
|
exec_config=TestSuiteRunExternalExecConfigRequest(
|
325
344
|
type="EXTERNAL",
|
326
345
|
data=TestSuiteRunExternalExecConfigDataRequest(
|
@@ -0,0 +1,10 @@
|
|
1
|
+
from typing import TypeVar, Optional
|
2
|
+
|
3
|
+
_T = TypeVar("_T")
|
4
|
+
|
5
|
+
|
6
|
+
def cast_not_optional(optional: Optional[_T]) -> _T:
|
7
|
+
"""Convert an optional to its value for type checking purposes. Raises an AssertionError if passed None."""
|
8
|
+
if optional is None:
|
9
|
+
raise AssertionError("Not optional check failed")
|
10
|
+
return optional
|
vellum/lib/utils/uuid.py
ADDED
vellum/resources/__init__.py
CHANGED
@@ -15,11 +15,13 @@ from . import (
|
|
15
15
|
)
|
16
16
|
from .deployments import DeploymentsListRequestStatus
|
17
17
|
from .document_indexes import DocumentIndexesListRequestStatus
|
18
|
+
from .folder_entities import FolderEntitiesListRequestEntityStatus
|
18
19
|
from .workflow_deployments import WorkflowDeploymentsListRequestStatus
|
19
20
|
|
20
21
|
__all__ = [
|
21
22
|
"DeploymentsListRequestStatus",
|
22
23
|
"DocumentIndexesListRequestStatus",
|
24
|
+
"FolderEntitiesListRequestEntityStatus",
|
23
25
|
"WorkflowDeploymentsListRequestStatus",
|
24
26
|
"ad_hoc",
|
25
27
|
"deployments",
|
@@ -2,10 +2,13 @@
|
|
2
2
|
|
3
3
|
import typing
|
4
4
|
from ...core.client_wrapper import SyncClientWrapper
|
5
|
+
from .types.folder_entities_list_request_entity_status import FolderEntitiesListRequestEntityStatus
|
5
6
|
from ...core.request_options import RequestOptions
|
6
|
-
from ...
|
7
|
+
from ...types.paginated_folder_entity_list import PaginatedFolderEntityList
|
8
|
+
from ...core.pydantic_utilities import parse_obj_as
|
7
9
|
from json.decoder import JSONDecodeError
|
8
10
|
from ...core.api_error import ApiError
|
11
|
+
from ...core.jsonable_encoder import jsonable_encoder
|
9
12
|
from ...core.client_wrapper import AsyncClientWrapper
|
10
13
|
|
11
14
|
# this is used as the default value for optional parameters
|
@@ -16,6 +19,93 @@ class FolderEntitiesClient:
|
|
16
19
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
17
20
|
self._client_wrapper = client_wrapper
|
18
21
|
|
22
|
+
def list(
|
23
|
+
self,
|
24
|
+
*,
|
25
|
+
parent_folder_id: str,
|
26
|
+
entity_status: typing.Optional[FolderEntitiesListRequestEntityStatus] = None,
|
27
|
+
limit: typing.Optional[int] = None,
|
28
|
+
offset: typing.Optional[int] = None,
|
29
|
+
ordering: typing.Optional[str] = None,
|
30
|
+
request_options: typing.Optional[RequestOptions] = None,
|
31
|
+
) -> PaginatedFolderEntityList:
|
32
|
+
"""
|
33
|
+
List all folder entities within a specified folder.
|
34
|
+
|
35
|
+
Parameters
|
36
|
+
----------
|
37
|
+
parent_folder_id : str
|
38
|
+
Filter down to only those entities whose parent folder has the specified ID.
|
39
|
+
|
40
|
+
To filter by an entity's parent folder, provide the ID of the parent folder. To filter by the root directory, provide
|
41
|
+
a string representing the entity type of the root directory. Supported root directories include:
|
42
|
+
|
43
|
+
- PROMPT_SANDBOX
|
44
|
+
- WORKFLOW_SANDBOX
|
45
|
+
- DOCUMENT_INDEX
|
46
|
+
- TEST_SUITE
|
47
|
+
|
48
|
+
entity_status : typing.Optional[FolderEntitiesListRequestEntityStatus]
|
49
|
+
Filter down to only those objects whose entities have a status matching the status specified.
|
50
|
+
|
51
|
+
- `ACTIVE` - Active
|
52
|
+
- `ARCHIVED` - Archived
|
53
|
+
|
54
|
+
limit : typing.Optional[int]
|
55
|
+
Number of results to return per page.
|
56
|
+
|
57
|
+
offset : typing.Optional[int]
|
58
|
+
The initial index from which to return the results.
|
59
|
+
|
60
|
+
ordering : typing.Optional[str]
|
61
|
+
Which field to use when ordering the results.
|
62
|
+
|
63
|
+
request_options : typing.Optional[RequestOptions]
|
64
|
+
Request-specific configuration.
|
65
|
+
|
66
|
+
Returns
|
67
|
+
-------
|
68
|
+
PaginatedFolderEntityList
|
69
|
+
|
70
|
+
|
71
|
+
Examples
|
72
|
+
--------
|
73
|
+
from vellum import Vellum
|
74
|
+
|
75
|
+
client = Vellum(
|
76
|
+
api_key="YOUR_API_KEY",
|
77
|
+
)
|
78
|
+
client.folder_entities.list(
|
79
|
+
parent_folder_id="parent_folder_id",
|
80
|
+
)
|
81
|
+
"""
|
82
|
+
_response = self._client_wrapper.httpx_client.request(
|
83
|
+
"v1/folder-entities",
|
84
|
+
base_url=self._client_wrapper.get_environment().default,
|
85
|
+
method="GET",
|
86
|
+
params={
|
87
|
+
"entity_status": entity_status,
|
88
|
+
"limit": limit,
|
89
|
+
"offset": offset,
|
90
|
+
"ordering": ordering,
|
91
|
+
"parent_folder_id": parent_folder_id,
|
92
|
+
},
|
93
|
+
request_options=request_options,
|
94
|
+
)
|
95
|
+
try:
|
96
|
+
if 200 <= _response.status_code < 300:
|
97
|
+
return typing.cast(
|
98
|
+
PaginatedFolderEntityList,
|
99
|
+
parse_obj_as(
|
100
|
+
type_=PaginatedFolderEntityList, # type: ignore
|
101
|
+
object_=_response.json(),
|
102
|
+
),
|
103
|
+
)
|
104
|
+
_response_json = _response.json()
|
105
|
+
except JSONDecodeError:
|
106
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
107
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
108
|
+
|
19
109
|
def add_entity_to_folder(
|
20
110
|
self, folder_id: str, *, entity_id: str, request_options: typing.Optional[RequestOptions] = None
|
21
111
|
) -> None:
|
@@ -27,7 +117,13 @@ class FolderEntitiesClient:
|
|
27
117
|
Parameters
|
28
118
|
----------
|
29
119
|
folder_id : str
|
30
|
-
The ID of the folder to which the entity should be added. This can be a UUID of a folder, or the name of a root
|
120
|
+
The ID of the folder to which the entity should be added. This can be a UUID of a folder, or the name of a root
|
121
|
+
directory. Supported root directories include:
|
122
|
+
|
123
|
+
- PROMPT_SANDBOX
|
124
|
+
- WORKFLOW_SANDBOX
|
125
|
+
- DOCUMENT_INDEX
|
126
|
+
- TEST_SUITE
|
31
127
|
|
32
128
|
entity_id : str
|
33
129
|
The ID of the entity you would like to move.
|
@@ -74,6 +170,101 @@ class AsyncFolderEntitiesClient:
|
|
74
170
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
75
171
|
self._client_wrapper = client_wrapper
|
76
172
|
|
173
|
+
async def list(
|
174
|
+
self,
|
175
|
+
*,
|
176
|
+
parent_folder_id: str,
|
177
|
+
entity_status: typing.Optional[FolderEntitiesListRequestEntityStatus] = None,
|
178
|
+
limit: typing.Optional[int] = None,
|
179
|
+
offset: typing.Optional[int] = None,
|
180
|
+
ordering: typing.Optional[str] = None,
|
181
|
+
request_options: typing.Optional[RequestOptions] = None,
|
182
|
+
) -> PaginatedFolderEntityList:
|
183
|
+
"""
|
184
|
+
List all folder entities within a specified folder.
|
185
|
+
|
186
|
+
Parameters
|
187
|
+
----------
|
188
|
+
parent_folder_id : str
|
189
|
+
Filter down to only those entities whose parent folder has the specified ID.
|
190
|
+
|
191
|
+
To filter by an entity's parent folder, provide the ID of the parent folder. To filter by the root directory, provide
|
192
|
+
a string representing the entity type of the root directory. Supported root directories include:
|
193
|
+
|
194
|
+
- PROMPT_SANDBOX
|
195
|
+
- WORKFLOW_SANDBOX
|
196
|
+
- DOCUMENT_INDEX
|
197
|
+
- TEST_SUITE
|
198
|
+
|
199
|
+
entity_status : typing.Optional[FolderEntitiesListRequestEntityStatus]
|
200
|
+
Filter down to only those objects whose entities have a status matching the status specified.
|
201
|
+
|
202
|
+
- `ACTIVE` - Active
|
203
|
+
- `ARCHIVED` - Archived
|
204
|
+
|
205
|
+
limit : typing.Optional[int]
|
206
|
+
Number of results to return per page.
|
207
|
+
|
208
|
+
offset : typing.Optional[int]
|
209
|
+
The initial index from which to return the results.
|
210
|
+
|
211
|
+
ordering : typing.Optional[str]
|
212
|
+
Which field to use when ordering the results.
|
213
|
+
|
214
|
+
request_options : typing.Optional[RequestOptions]
|
215
|
+
Request-specific configuration.
|
216
|
+
|
217
|
+
Returns
|
218
|
+
-------
|
219
|
+
PaginatedFolderEntityList
|
220
|
+
|
221
|
+
|
222
|
+
Examples
|
223
|
+
--------
|
224
|
+
import asyncio
|
225
|
+
|
226
|
+
from vellum import AsyncVellum
|
227
|
+
|
228
|
+
client = AsyncVellum(
|
229
|
+
api_key="YOUR_API_KEY",
|
230
|
+
)
|
231
|
+
|
232
|
+
|
233
|
+
async def main() -> None:
|
234
|
+
await client.folder_entities.list(
|
235
|
+
parent_folder_id="parent_folder_id",
|
236
|
+
)
|
237
|
+
|
238
|
+
|
239
|
+
asyncio.run(main())
|
240
|
+
"""
|
241
|
+
_response = await self._client_wrapper.httpx_client.request(
|
242
|
+
"v1/folder-entities",
|
243
|
+
base_url=self._client_wrapper.get_environment().default,
|
244
|
+
method="GET",
|
245
|
+
params={
|
246
|
+
"entity_status": entity_status,
|
247
|
+
"limit": limit,
|
248
|
+
"offset": offset,
|
249
|
+
"ordering": ordering,
|
250
|
+
"parent_folder_id": parent_folder_id,
|
251
|
+
},
|
252
|
+
request_options=request_options,
|
253
|
+
)
|
254
|
+
try:
|
255
|
+
if 200 <= _response.status_code < 300:
|
256
|
+
return typing.cast(
|
257
|
+
PaginatedFolderEntityList,
|
258
|
+
parse_obj_as(
|
259
|
+
type_=PaginatedFolderEntityList, # type: ignore
|
260
|
+
object_=_response.json(),
|
261
|
+
),
|
262
|
+
)
|
263
|
+
_response_json = _response.json()
|
264
|
+
except JSONDecodeError:
|
265
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
266
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
267
|
+
|
77
268
|
async def add_entity_to_folder(
|
78
269
|
self, folder_id: str, *, entity_id: str, request_options: typing.Optional[RequestOptions] = None
|
79
270
|
) -> None:
|
@@ -85,7 +276,13 @@ class AsyncFolderEntitiesClient:
|
|
85
276
|
Parameters
|
86
277
|
----------
|
87
278
|
folder_id : str
|
88
|
-
The ID of the folder to which the entity should be added. This can be a UUID of a folder, or the name of a root
|
279
|
+
The ID of the folder to which the entity should be added. This can be a UUID of a folder, or the name of a root
|
280
|
+
directory. Supported root directories include:
|
281
|
+
|
282
|
+
- PROMPT_SANDBOX
|
283
|
+
- WORKFLOW_SANDBOX
|
284
|
+
- DOCUMENT_INDEX
|
285
|
+
- TEST_SUITE
|
89
286
|
|
90
287
|
entity_id : str
|
91
288
|
The ID of the entity you would like to move.
|
@@ -24,8 +24,8 @@ class TestSuiteRunsClient:
|
|
24
24
|
def create(
|
25
25
|
self,
|
26
26
|
*,
|
27
|
-
test_suite_id: str,
|
28
27
|
exec_config: TestSuiteRunExecConfigRequest,
|
28
|
+
test_suite_id: typing.Optional[str] = OMIT,
|
29
29
|
test_suite_name: typing.Optional[str] = OMIT,
|
30
30
|
request_options: typing.Optional[RequestOptions] = None,
|
31
31
|
) -> TestSuiteRunRead:
|
@@ -34,12 +34,12 @@ class TestSuiteRunsClient:
|
|
34
34
|
|
35
35
|
Parameters
|
36
36
|
----------
|
37
|
-
test_suite_id : str
|
38
|
-
The ID of the Test Suite to run. Must provide either this or test_suite_id.
|
39
|
-
|
40
37
|
exec_config : TestSuiteRunExecConfigRequest
|
41
38
|
Configuration that defines how the Test Suite should be run
|
42
39
|
|
40
|
+
test_suite_id : typing.Optional[str]
|
41
|
+
The ID of the Test Suite to run. Must provide either this or test_suite_id.
|
42
|
+
|
43
43
|
test_suite_name : typing.Optional[str]
|
44
44
|
The name of the Test Suite to run. Must provide either this or test_suite_id.
|
45
45
|
|
@@ -63,7 +63,6 @@ class TestSuiteRunsClient:
|
|
63
63
|
api_key="YOUR_API_KEY",
|
64
64
|
)
|
65
65
|
client.test_suite_runs.create(
|
66
|
-
test_suite_id="test_suite_id",
|
67
66
|
exec_config=TestSuiteRunDeploymentReleaseTagExecConfigRequest(
|
68
67
|
data=TestSuiteRunDeploymentReleaseTagExecConfigDataRequest(
|
69
68
|
deployment_id="deployment_id",
|
@@ -227,8 +226,8 @@ class AsyncTestSuiteRunsClient:
|
|
227
226
|
async def create(
|
228
227
|
self,
|
229
228
|
*,
|
230
|
-
test_suite_id: str,
|
231
229
|
exec_config: TestSuiteRunExecConfigRequest,
|
230
|
+
test_suite_id: typing.Optional[str] = OMIT,
|
232
231
|
test_suite_name: typing.Optional[str] = OMIT,
|
233
232
|
request_options: typing.Optional[RequestOptions] = None,
|
234
233
|
) -> TestSuiteRunRead:
|
@@ -237,12 +236,12 @@ class AsyncTestSuiteRunsClient:
|
|
237
236
|
|
238
237
|
Parameters
|
239
238
|
----------
|
240
|
-
test_suite_id : str
|
241
|
-
The ID of the Test Suite to run. Must provide either this or test_suite_id.
|
242
|
-
|
243
239
|
exec_config : TestSuiteRunExecConfigRequest
|
244
240
|
Configuration that defines how the Test Suite should be run
|
245
241
|
|
242
|
+
test_suite_id : typing.Optional[str]
|
243
|
+
The ID of the Test Suite to run. Must provide either this or test_suite_id.
|
244
|
+
|
246
245
|
test_suite_name : typing.Optional[str]
|
247
246
|
The name of the Test Suite to run. Must provide either this or test_suite_id.
|
248
247
|
|
@@ -271,7 +270,6 @@ class AsyncTestSuiteRunsClient:
|
|
271
270
|
|
272
271
|
async def main() -> None:
|
273
272
|
await client.test_suite_runs.create(
|
274
|
-
test_suite_id="test_suite_id",
|
275
273
|
exec_config=TestSuiteRunDeploymentReleaseTagExecConfigRequest(
|
276
274
|
data=TestSuiteRunDeploymentReleaseTagExecConfigDataRequest(
|
277
275
|
deployment_id="deployment_id",
|
vellum/types/__init__.py
CHANGED
@@ -106,6 +106,17 @@ from .execution_vellum_value import ExecutionVellumValue
|
|
106
106
|
from .external_test_case_execution import ExternalTestCaseExecution
|
107
107
|
from .external_test_case_execution_request import ExternalTestCaseExecutionRequest
|
108
108
|
from .finish_reason_enum import FinishReasonEnum
|
109
|
+
from .folder_entity import FolderEntity
|
110
|
+
from .folder_entity_document_index import FolderEntityDocumentIndex
|
111
|
+
from .folder_entity_document_index_data import FolderEntityDocumentIndexData
|
112
|
+
from .folder_entity_folder import FolderEntityFolder
|
113
|
+
from .folder_entity_folder_data import FolderEntityFolderData
|
114
|
+
from .folder_entity_prompt_sandbox import FolderEntityPromptSandbox
|
115
|
+
from .folder_entity_prompt_sandbox_data import FolderEntityPromptSandboxData
|
116
|
+
from .folder_entity_test_suite import FolderEntityTestSuite
|
117
|
+
from .folder_entity_test_suite_data import FolderEntityTestSuiteData
|
118
|
+
from .folder_entity_workflow_sandbox import FolderEntityWorkflowSandbox
|
119
|
+
from .folder_entity_workflow_sandbox_data import FolderEntityWorkflowSandboxData
|
109
120
|
from .fulfilled_ad_hoc_execute_prompt_event import FulfilledAdHocExecutePromptEvent
|
110
121
|
from .fulfilled_enum import FulfilledEnum
|
111
122
|
from .fulfilled_execute_prompt_event import FulfilledExecutePromptEvent
|
@@ -236,6 +247,7 @@ from .open_ai_vectorizer_text_embedding_3_small_request import OpenAiVectorizerT
|
|
236
247
|
from .open_ai_vectorizer_text_embedding_ada_002 import OpenAiVectorizerTextEmbeddingAda002
|
237
248
|
from .open_ai_vectorizer_text_embedding_ada_002_request import OpenAiVectorizerTextEmbeddingAda002Request
|
238
249
|
from .paginated_document_index_read_list import PaginatedDocumentIndexReadList
|
250
|
+
from .paginated_folder_entity_list import PaginatedFolderEntityList
|
239
251
|
from .paginated_slim_deployment_read_list import PaginatedSlimDeploymentReadList
|
240
252
|
from .paginated_slim_document_list import PaginatedSlimDocumentList
|
241
253
|
from .paginated_slim_workflow_deployment_list import PaginatedSlimWorkflowDeploymentList
|
@@ -567,6 +579,17 @@ __all__ = [
|
|
567
579
|
"ExternalTestCaseExecution",
|
568
580
|
"ExternalTestCaseExecutionRequest",
|
569
581
|
"FinishReasonEnum",
|
582
|
+
"FolderEntity",
|
583
|
+
"FolderEntityDocumentIndex",
|
584
|
+
"FolderEntityDocumentIndexData",
|
585
|
+
"FolderEntityFolder",
|
586
|
+
"FolderEntityFolderData",
|
587
|
+
"FolderEntityPromptSandbox",
|
588
|
+
"FolderEntityPromptSandboxData",
|
589
|
+
"FolderEntityTestSuite",
|
590
|
+
"FolderEntityTestSuiteData",
|
591
|
+
"FolderEntityWorkflowSandbox",
|
592
|
+
"FolderEntityWorkflowSandboxData",
|
570
593
|
"FulfilledAdHocExecutePromptEvent",
|
571
594
|
"FulfilledEnum",
|
572
595
|
"FulfilledExecutePromptEvent",
|
@@ -693,6 +716,7 @@ __all__ = [
|
|
693
716
|
"OpenAiVectorizerTextEmbeddingAda002",
|
694
717
|
"OpenAiVectorizerTextEmbeddingAda002Request",
|
695
718
|
"PaginatedDocumentIndexReadList",
|
719
|
+
"PaginatedFolderEntityList",
|
696
720
|
"PaginatedSlimDeploymentReadList",
|
697
721
|
"PaginatedSlimDocumentList",
|
698
722
|
"PaginatedSlimWorkflowDeploymentList",
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
import typing
|
4
|
+
from .folder_entity_folder import FolderEntityFolder
|
5
|
+
from .folder_entity_prompt_sandbox import FolderEntityPromptSandbox
|
6
|
+
from .folder_entity_workflow_sandbox import FolderEntityWorkflowSandbox
|
7
|
+
from .folder_entity_document_index import FolderEntityDocumentIndex
|
8
|
+
from .folder_entity_test_suite import FolderEntityTestSuite
|
9
|
+
|
10
|
+
FolderEntity = typing.Union[
|
11
|
+
FolderEntityFolder,
|
12
|
+
FolderEntityPromptSandbox,
|
13
|
+
FolderEntityWorkflowSandbox,
|
14
|
+
FolderEntityDocumentIndex,
|
15
|
+
FolderEntityTestSuite,
|
16
|
+
]
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from .folder_entity_document_index_data import FolderEntityDocumentIndexData
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class FolderEntityDocumentIndex(UniversalBaseModel):
|
11
|
+
"""
|
12
|
+
A slim representation of a Document Index, as it exists within a Folder.
|
13
|
+
"""
|
14
|
+
|
15
|
+
id: str
|
16
|
+
type: typing.Literal["DOCUMENT_INDEX"] = "DOCUMENT_INDEX"
|
17
|
+
data: FolderEntityDocumentIndexData
|
18
|
+
|
19
|
+
if IS_PYDANTIC_V2:
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
21
|
+
else:
|
22
|
+
|
23
|
+
class Config:
|
24
|
+
frozen = True
|
25
|
+
smart_union = True
|
26
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import datetime as dt
|
5
|
+
from .entity_status import EntityStatus
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import typing
|
8
|
+
import pydantic
|
9
|
+
|
10
|
+
|
11
|
+
class FolderEntityDocumentIndexData(UniversalBaseModel):
|
12
|
+
id: str
|
13
|
+
label: str
|
14
|
+
created: dt.datetime
|
15
|
+
modified: dt.datetime
|
16
|
+
status: EntityStatus
|
17
|
+
|
18
|
+
if IS_PYDANTIC_V2:
|
19
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
20
|
+
else:
|
21
|
+
|
22
|
+
class Config:
|
23
|
+
frozen = True
|
24
|
+
smart_union = True
|
25
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from .folder_entity_folder_data import FolderEntityFolderData
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class FolderEntityFolder(UniversalBaseModel):
|
11
|
+
"""
|
12
|
+
A slim representation of a Folder, as it exists within another Folder.
|
13
|
+
"""
|
14
|
+
|
15
|
+
id: str
|
16
|
+
type: typing.Literal["FOLDER"] = "FOLDER"
|
17
|
+
data: FolderEntityFolderData
|
18
|
+
|
19
|
+
if IS_PYDANTIC_V2:
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
21
|
+
else:
|
22
|
+
|
23
|
+
class Config:
|
24
|
+
frozen = True
|
25
|
+
smart_union = True
|
26
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import datetime as dt
|
5
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
6
|
+
import typing
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class FolderEntityFolderData(UniversalBaseModel):
|
11
|
+
id: str
|
12
|
+
label: str
|
13
|
+
created: dt.datetime
|
14
|
+
modified: dt.datetime
|
15
|
+
has_contents: bool
|
16
|
+
|
17
|
+
if IS_PYDANTIC_V2:
|
18
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
19
|
+
else:
|
20
|
+
|
21
|
+
class Config:
|
22
|
+
frozen = True
|
23
|
+
smart_union = True
|
24
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from .folder_entity_prompt_sandbox_data import FolderEntityPromptSandboxData
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class FolderEntityPromptSandbox(UniversalBaseModel):
|
11
|
+
"""
|
12
|
+
A slim representation of a Prompt Sandbox, as it exists within a Folder.
|
13
|
+
"""
|
14
|
+
|
15
|
+
id: str
|
16
|
+
type: typing.Literal["PROMPT_SANDBOX"] = "PROMPT_SANDBOX"
|
17
|
+
data: FolderEntityPromptSandboxData
|
18
|
+
|
19
|
+
if IS_PYDANTIC_V2:
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
21
|
+
else:
|
22
|
+
|
23
|
+
class Config:
|
24
|
+
frozen = True
|
25
|
+
smart_union = True
|
26
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import datetime as dt
|
5
|
+
from .entity_status import EntityStatus
|
6
|
+
import typing
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
8
|
+
import pydantic
|
9
|
+
|
10
|
+
|
11
|
+
class FolderEntityPromptSandboxData(UniversalBaseModel):
|
12
|
+
id: str
|
13
|
+
label: str
|
14
|
+
created: dt.datetime
|
15
|
+
modified: dt.datetime
|
16
|
+
status: EntityStatus
|
17
|
+
last_deployed_on: typing.Optional[dt.datetime] = None
|
18
|
+
|
19
|
+
if IS_PYDANTIC_V2:
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
21
|
+
else:
|
22
|
+
|
23
|
+
class Config:
|
24
|
+
frozen = True
|
25
|
+
smart_union = True
|
26
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from .folder_entity_test_suite_data import FolderEntityTestSuiteData
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class FolderEntityTestSuite(UniversalBaseModel):
|
11
|
+
"""
|
12
|
+
A slim representation of a Test Suite, as it exists within a Folder.
|
13
|
+
"""
|
14
|
+
|
15
|
+
id: str
|
16
|
+
type: typing.Literal["TEST_SUITE"] = "TEST_SUITE"
|
17
|
+
data: FolderEntityTestSuiteData
|
18
|
+
|
19
|
+
if IS_PYDANTIC_V2:
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
21
|
+
else:
|
22
|
+
|
23
|
+
class Config:
|
24
|
+
frozen = True
|
25
|
+
smart_union = True
|
26
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import datetime as dt
|
5
|
+
from .entity_status import EntityStatus
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import typing
|
8
|
+
import pydantic
|
9
|
+
|
10
|
+
|
11
|
+
class FolderEntityTestSuiteData(UniversalBaseModel):
|
12
|
+
id: str
|
13
|
+
label: str
|
14
|
+
created: dt.datetime
|
15
|
+
modified: dt.datetime
|
16
|
+
status: EntityStatus
|
17
|
+
|
18
|
+
if IS_PYDANTIC_V2:
|
19
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
20
|
+
else:
|
21
|
+
|
22
|
+
class Config:
|
23
|
+
frozen = True
|
24
|
+
smart_union = True
|
25
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from .folder_entity_workflow_sandbox_data import FolderEntityWorkflowSandboxData
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class FolderEntityWorkflowSandbox(UniversalBaseModel):
|
11
|
+
"""
|
12
|
+
A slim representation of a Workflow Sandbox, as it exists within a Folder.
|
13
|
+
"""
|
14
|
+
|
15
|
+
id: str
|
16
|
+
type: typing.Literal["WORKFLOW_SANDBOX"] = "WORKFLOW_SANDBOX"
|
17
|
+
data: FolderEntityWorkflowSandboxData
|
18
|
+
|
19
|
+
if IS_PYDANTIC_V2:
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
21
|
+
else:
|
22
|
+
|
23
|
+
class Config:
|
24
|
+
frozen = True
|
25
|
+
smart_union = True
|
26
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import datetime as dt
|
5
|
+
from .entity_status import EntityStatus
|
6
|
+
import typing
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
8
|
+
import pydantic
|
9
|
+
|
10
|
+
|
11
|
+
class FolderEntityWorkflowSandboxData(UniversalBaseModel):
|
12
|
+
id: str
|
13
|
+
label: str
|
14
|
+
created: dt.datetime
|
15
|
+
modified: dt.datetime
|
16
|
+
status: EntityStatus
|
17
|
+
last_deployed_on: typing.Optional[dt.datetime] = None
|
18
|
+
|
19
|
+
if IS_PYDANTIC_V2:
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
21
|
+
else:
|
22
|
+
|
23
|
+
class Config:
|
24
|
+
frozen = True
|
25
|
+
smart_union = True
|
26
|
+
extra = pydantic.Extra.allow
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
4
|
+
import typing
|
5
|
+
from .folder_entity import FolderEntity
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
7
|
+
import pydantic
|
8
|
+
|
9
|
+
|
10
|
+
class PaginatedFolderEntityList(UniversalBaseModel):
|
11
|
+
count: typing.Optional[int] = None
|
12
|
+
next: typing.Optional[str] = None
|
13
|
+
previous: typing.Optional[str] = None
|
14
|
+
results: typing.Optional[typing.List[FolderEntity]] = None
|
15
|
+
|
16
|
+
if IS_PYDANTIC_V2:
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
18
|
+
else:
|
19
|
+
|
20
|
+
class Config:
|
21
|
+
frozen = True
|
22
|
+
smart_union = True
|
23
|
+
extra = pydantic.Extra.allow
|
@@ -1,8 +1,8 @@
|
|
1
|
-
vellum/__init__.py,sha256=
|
1
|
+
vellum/__init__.py,sha256=Xwhije2oWv8vv2_FipbeWUctQ9KqoAik8PONMipyxus,33434
|
2
2
|
vellum/client.py,sha256=cMrzyQ7GUnByOLvgoe9lCf569uk5e17I4TIgA74awKg,114255
|
3
3
|
vellum/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
4
4
|
vellum/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
5
|
-
vellum/core/client_wrapper.py,sha256=
|
5
|
+
vellum/core/client_wrapper.py,sha256=Kx9aa371E_mOTEMMnK0-ZBcwrYjDsnV-olT344DkZTk,1890
|
6
6
|
vellum/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
7
7
|
vellum/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
8
8
|
vellum/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
@@ -22,13 +22,15 @@ vellum/lib/__init__.py,sha256=KTSY0V59WEOr5uNyAei1dDfaAatyXw_Aca5kNjo5mY0,79
|
|
22
22
|
vellum/lib/test_suites/__init__.py,sha256=hNsLoHSykqXDJP-MwFvu2lExImxo9KEyEJjt_fdAzpE,77
|
23
23
|
vellum/lib/test_suites/constants.py,sha256=Vteml4_csZsMgo_q3-71E3JRCAoN6308TXLu5nfLhmU,116
|
24
24
|
vellum/lib/test_suites/exceptions.py,sha256=6Xacoyv43fJvVf6Dt6Io5a-f9vF12Tx51jzsQRNSqhY,56
|
25
|
-
vellum/lib/test_suites/resources.py,sha256=
|
25
|
+
vellum/lib/test_suites/resources.py,sha256=cn0FqsULHNo84cGhS1-7tvV7-bz77UgFd6Sfxl63Cdo,13137
|
26
26
|
vellum/lib/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
27
|
vellum/lib/utils/env.py,sha256=ySl859lYBfls8hmlaU_RFdquHa_A_7SzaC6KEdFqh1Y,298
|
28
28
|
vellum/lib/utils/exceptions.py,sha256=dXMAkzqbHV_AP5FjjbegPlfUE0zQDlpA3qOsoOJUxfg,49
|
29
29
|
vellum/lib/utils/paginator.py,sha256=yDvgehocYBDclLt5SewZH4hCIyq0yLHdBzkyPCoYPjs,698
|
30
|
+
vellum/lib/utils/typing.py,sha256=qngWnFwrWLUeu1nmixXGj173mwg7BXKTAyQkxK8AtfQ,327
|
31
|
+
vellum/lib/utils/uuid.py,sha256=nedyhTNQDS2YvrU5gL3PtvG9cgGH87yKOcpGDJAe44E,214
|
30
32
|
vellum/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
31
|
-
vellum/resources/__init__.py,sha256=
|
33
|
+
vellum/resources/__init__.py,sha256=202WddnB8daP4pLM4aQEkqvWaqRUBxEN2e5Ju__FyqM,968
|
32
34
|
vellum/resources/ad_hoc/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
33
35
|
vellum/resources/ad_hoc/client.py,sha256=TP5Mr94keCqcIi3_1zGEApyPJhvax7NHUb1396X4ypQ,16342
|
34
36
|
vellum/resources/deployments/__init__.py,sha256=AE0TcFwLrLBljM0ZDX-pPw4Kqt-1f5JDpIok2HS80QI,157
|
@@ -41,14 +43,16 @@ vellum/resources/document_indexes/types/__init__.py,sha256=IoFqKHN_VBdEhC7VL8_6J
|
|
41
43
|
vellum/resources/document_indexes/types/document_indexes_list_request_status.py,sha256=sfUEB0cvOSmlE2iITqnMVyHv05Zy2fWP4QjCIYqMg0M,178
|
42
44
|
vellum/resources/documents/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
43
45
|
vellum/resources/documents/client.py,sha256=TRptBN1FG4wyTYOq0TpmkXlQL63Owbvsa539E1VXs6s,27574
|
44
|
-
vellum/resources/folder_entities/__init__.py,sha256=
|
45
|
-
vellum/resources/folder_entities/client.py,sha256=
|
46
|
+
vellum/resources/folder_entities/__init__.py,sha256=QOp7UMMB3a32GrfVaud35ECn4fqPBKXxCyClsDgd6GE,175
|
47
|
+
vellum/resources/folder_entities/client.py,sha256=ep5dnfJmEuEyrOSUftEVwKaeXrg1DENEDjO4_nw9yq0,11114
|
48
|
+
vellum/resources/folder_entities/types/__init__.py,sha256=cHabrupjC-HL3kj-UZ9WdVzqHoQHCu6QsLFB3wlOs7k,212
|
49
|
+
vellum/resources/folder_entities/types/folder_entities_list_request_entity_status.py,sha256=nK9b9fRSeCfjn2V2Hifl1IbhFeVsNkoeXJ8rCAPADFg,183
|
46
50
|
vellum/resources/metric_definitions/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
47
51
|
vellum/resources/metric_definitions/client.py,sha256=Q0hrwTmjaUUVYPKM7wqRdWMzQwZszn5i_ons5mAsIXY,6009
|
48
52
|
vellum/resources/sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
49
53
|
vellum/resources/sandboxes/client.py,sha256=i-6DHap5k6gFcYS-kWI8ayJFVZxb-GENRft6BJwVam4,17158
|
50
54
|
vellum/resources/test_suite_runs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
51
|
-
vellum/resources/test_suite_runs/client.py,sha256=
|
55
|
+
vellum/resources/test_suite_runs/client.py,sha256=gCF1ewlUrCsZhnXYOYqdUuD2twTrQ-u95xOgvRy7WAw,15130
|
52
56
|
vellum/resources/test_suites/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
53
57
|
vellum/resources/test_suites/client.py,sha256=XOSXVzgcnyescVX02aKdRzLSxY32xS0ULXbwc9XFAE8,25063
|
54
58
|
vellum/resources/workflow_deployments/__init__.py,sha256=-5BCA0kSmW6WUh4gqLuQtHv4zFdt9lccuDwMU5YvEu4,173
|
@@ -68,7 +72,7 @@ vellum/terraform/ml_model/__init__.py,sha256=I8h1Ru-Rb-Hi_HusK6G7nJQZEKQGsAAHMmw
|
|
68
72
|
vellum/terraform/provider/__init__.py,sha256=-06xKmAmknpohVzw5TD-t1bnUHta8OrQYqvMd04XM-U,12684
|
69
73
|
vellum/terraform/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
70
74
|
vellum/terraform/versions.json,sha256=45c7jjRD5i4w9DJQHs5ZqLLVXRnQwP9Rirq3mWY-xEo,56
|
71
|
-
vellum/types/__init__.py,sha256=
|
75
|
+
vellum/types/__init__.py,sha256=0OFQSJe437PosE8l2TDQo1nrA1p5HQkx13Fq2wT1Rg4,51034
|
72
76
|
vellum/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
|
73
77
|
vellum/types/ad_hoc_expand_meta_request.py,sha256=hS8PC3hC--OKvRKi2ZFj_RJPQ1bxo2GXno8qJq1kk28,1338
|
74
78
|
vellum/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
|
@@ -167,6 +171,17 @@ vellum/types/execution_vellum_value.py,sha256=PpbrbJdSioqaqT2gZ6mx2Ht0Oy8XGyxBDc
|
|
167
171
|
vellum/types/external_test_case_execution.py,sha256=CzO7IM3uINXQfOHWjEVvRqwRcp5_JWWtyXVxMQGHl_c,1063
|
168
172
|
vellum/types/external_test_case_execution_request.py,sha256=5nZWMZnDPqQSmmcnIM5Cz6VxA6YQrcfmdWw7d2Da3cY,1128
|
169
173
|
vellum/types/finish_reason_enum.py,sha256=KoNjzvXMHDCT0AUhhwGoZ1_7bi4h3fZEFvvHyGyoTP8,169
|
174
|
+
vellum/types/folder_entity.py,sha256=v8zNprIbxktOzmncbNXTOJlLTBV5bZqD1Z_AGGHG1_8,578
|
175
|
+
vellum/types/folder_entity_document_index.py,sha256=-Tg2qnzGhp2FLnvGrgoVr0ZBEKFmm2TjgYvlII8tkog,839
|
176
|
+
vellum/types/folder_entity_document_index_data.py,sha256=UceusLf7dLYDHq4ZlKdP5Wx_ytL5oadOPMtut9AKkrQ,723
|
177
|
+
vellum/types/folder_entity_folder.py,sha256=1GWfyHdenyAI2GXiouIbnFhPK4ADqZGFh-6fpp_C6-U,792
|
178
|
+
vellum/types/folder_entity_folder_data.py,sha256=JLYkhvRY63-ojNY84lfRTaUg25KjslSE-iNAC2NYCTI,674
|
179
|
+
vellum/types/folder_entity_prompt_sandbox.py,sha256=7CGVcK5maoqO7CC7sFfi6F5X0QWdHVbEygqLyci_VDY,839
|
180
|
+
vellum/types/folder_entity_prompt_sandbox_data.py,sha256=4u-t-p2-h7Z1SacNOQnEnY3tt-au5WB0hIDrB1HOeKk,781
|
181
|
+
vellum/types/folder_entity_test_suite.py,sha256=M5sb7ntUX2VsCyD0AYnz7dalt7G1ejOYQZvsUU33q2w,811
|
182
|
+
vellum/types/folder_entity_test_suite_data.py,sha256=RGITy3Pip6NeIb77YGavDWgRr8GLFDB9sXrTU_Dm2OI,719
|
183
|
+
vellum/types/folder_entity_workflow_sandbox.py,sha256=gFmkwKZGh5O9-9y4w6VGK1IRsKLf7NZ4SCC-pgucm8M,853
|
184
|
+
vellum/types/folder_entity_workflow_sandbox_data.py,sha256=MW0nLAvetgnsm6KWiGcYcKB9llR-UfosSNz0MtokN38,783
|
170
185
|
vellum/types/fulfilled_ad_hoc_execute_prompt_event.py,sha256=19rFjVrzobaaAQhZlP_WGV9f_Rwrz4EPRXbT2aYkaJw,1016
|
171
186
|
vellum/types/fulfilled_enum.py,sha256=MenrGneRMBvsq-n8tkMXAx0wppGWLJgkqdKnfklGP9U,124
|
172
187
|
vellum/types/fulfilled_execute_prompt_event.py,sha256=E-iBwlMWvwQyRfzqPlgtX8KurE3IYsTRd5vWjXtbOmk,994
|
@@ -293,6 +308,7 @@ vellum/types/open_ai_vectorizer_text_embedding_3_small_request.py,sha256=-lwNeWj
|
|
293
308
|
vellum/types/open_ai_vectorizer_text_embedding_ada_002.py,sha256=c4vNlR6lRvUjq-67M06sroDMNMG_qC4JUBqwmKEJQ2I,812
|
294
309
|
vellum/types/open_ai_vectorizer_text_embedding_ada_002_request.py,sha256=FdpkkNBGgRwfqFjBwpfH4t2zKIM0pIYminX2iZQUzvY,841
|
295
310
|
vellum/types/paginated_document_index_read_list.py,sha256=bO7pm3KCZi5LDO17YXgr_lUF9SRdAfMu6wOutX91ANw,797
|
311
|
+
vellum/types/paginated_folder_entity_list.py,sha256=PElkrxMrnEjL9YGXde_r7RpNQUjzYfaLDlnwO8WFDSo,776
|
296
312
|
vellum/types/paginated_slim_deployment_read_list.py,sha256=H8VKHr-aZP4ACwQJSs7KOrbqaj2nmMmyyvZHe7NRWRc,1048
|
297
313
|
vellum/types/paginated_slim_document_list.py,sha256=8f7L0ZqD9hBU4XTGTdltl0ORuyy2gryPU5UxlmPabq4,776
|
298
314
|
vellum/types/paginated_slim_workflow_deployment_list.py,sha256=b0SGPewaOK5VlvlxymI6BELdqC9W0m823IZK-SaOiIw,1072
|
@@ -521,7 +537,7 @@ vellum/types/workflow_result_event_output_data_search_results.py,sha256=U34IK7Zv
|
|
521
537
|
vellum/types/workflow_result_event_output_data_string.py,sha256=tM3kgh6tEhD0dFEb_7UU0-UspeN4pUdINCcCrD64W74,1228
|
522
538
|
vellum/types/workflow_stream_event.py,sha256=Wn3Yzuy9MqWAeo8tEaXDTKDEbJoA8DdYdMVq8EKuhu8,361
|
523
539
|
vellum/version.py,sha256=jq-1PlAYxN9AXuaZqbYk9ak27SgE2lw9Ia5gx1b1gVI,76
|
524
|
-
vellum_ai-0.8.
|
525
|
-
vellum_ai-0.8.
|
526
|
-
vellum_ai-0.8.
|
527
|
-
vellum_ai-0.8.
|
540
|
+
vellum_ai-0.8.25.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
|
541
|
+
vellum_ai-0.8.25.dist-info/METADATA,sha256=ibKMuK7rTEPyv3aQB39XMW7f1iH3mG6iffIxE6bQ1NA,4395
|
542
|
+
vellum_ai-0.8.25.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
543
|
+
vellum_ai-0.8.25.dist-info/RECORD,,
|
File without changes
|
File without changes
|