vellum-ai 0.3.18__py3-none-any.whl → 0.3.20__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.
vellum/__init__.py CHANGED
@@ -210,6 +210,7 @@ from .types import (
210
210
  PaginatedSlimDocumentList,
211
211
  PaginatedSlimWorkflowDeploymentList,
212
212
  PaginatedTestSuiteRunExecutionList,
213
+ PaginatedTestSuiteTestCaseList,
213
214
  ProcessingFailureReasonEnum,
214
215
  ProcessingStateEnum,
215
216
  PromptDeploymentExpandMetaRequestRequest,
@@ -372,6 +373,9 @@ from .types import (
372
373
  TestSuiteRunMetricOutput,
373
374
  TestSuiteRunMetricOutput_Error,
374
375
  TestSuiteRunMetricOutput_Number,
376
+ TestSuiteRunMetricOutput_String,
377
+ TestSuiteRunMetricStringOutput,
378
+ TestSuiteRunMetricStringOutputTypeEnum,
375
379
  TestSuiteRunRead,
376
380
  TestSuiteRunState,
377
381
  TestSuiteRunTestSuite,
@@ -700,6 +704,7 @@ __all__ = [
700
704
  "PaginatedSlimDocumentList",
701
705
  "PaginatedSlimWorkflowDeploymentList",
702
706
  "PaginatedTestSuiteRunExecutionList",
707
+ "PaginatedTestSuiteTestCaseList",
703
708
  "ProcessingFailureReasonEnum",
704
709
  "ProcessingStateEnum",
705
710
  "PromptDeploymentExpandMetaRequestRequest",
@@ -862,6 +867,9 @@ __all__ = [
862
867
  "TestSuiteRunMetricOutput",
863
868
  "TestSuiteRunMetricOutput_Error",
864
869
  "TestSuiteRunMetricOutput_Number",
870
+ "TestSuiteRunMetricOutput_String",
871
+ "TestSuiteRunMetricStringOutput",
872
+ "TestSuiteRunMetricStringOutputTypeEnum",
865
873
  "TestSuiteRunRead",
866
874
  "TestSuiteRunState",
867
875
  "TestSuiteRunTestSuite",
@@ -18,7 +18,7 @@ class BaseClientWrapper:
18
18
  headers: typing.Dict[str, str] = {
19
19
  "X-Fern-Language": "Python",
20
20
  "X-Fern-SDK-Name": "vellum-ai",
21
- "X-Fern-SDK-Version": "0.3.18",
21
+ "X-Fern-SDK-Version": "0.3.20",
22
22
  }
23
23
  headers["X_API_KEY"] = self.api_key
24
24
  return headers
@@ -10,6 +10,7 @@ from ...core.jsonable_encoder import jsonable_encoder
10
10
  from ...core.remove_none_from_dict import remove_none_from_dict
11
11
  from ...core.request_options import RequestOptions
12
12
  from ...types.named_test_case_variable_value_request import NamedTestCaseVariableValueRequest
13
+ from ...types.paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
13
14
  from ...types.test_suite_test_case import TestSuiteTestCase
14
15
 
15
16
  try:
@@ -25,6 +26,76 @@ class TestSuitesClient:
25
26
  def __init__(self, *, client_wrapper: SyncClientWrapper):
26
27
  self._client_wrapper = client_wrapper
27
28
 
29
+ def list_test_suite_test_cases(
30
+ self,
31
+ id: str,
32
+ *,
33
+ limit: typing.Optional[int] = None,
34
+ offset: typing.Optional[int] = None,
35
+ request_options: typing.Optional[RequestOptions] = None,
36
+ ) -> PaginatedTestSuiteTestCaseList:
37
+ """
38
+ List the Test Cases associated with a Test Suite
39
+
40
+ Parameters:
41
+ - id: str. A UUID string identifying this test suite.
42
+
43
+ - limit: typing.Optional[int]. Number of results to return per page.
44
+
45
+ - offset: typing.Optional[int]. The initial index from which to return the results.
46
+
47
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
48
+ ---
49
+ from vellum.client import Vellum
50
+
51
+ client = Vellum(
52
+ api_key="YOUR_API_KEY",
53
+ )
54
+ client.test_suites.list_test_suite_test_cases(
55
+ id="id",
56
+ )
57
+ """
58
+ _response = self._client_wrapper.httpx_client.request(
59
+ "GET",
60
+ urllib.parse.urljoin(
61
+ f"{self._client_wrapper.get_environment().default}/",
62
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
63
+ ),
64
+ params=jsonable_encoder(
65
+ remove_none_from_dict(
66
+ {
67
+ "limit": limit,
68
+ "offset": offset,
69
+ **(
70
+ request_options.get("additional_query_parameters", {})
71
+ if request_options is not None
72
+ else {}
73
+ ),
74
+ }
75
+ )
76
+ ),
77
+ headers=jsonable_encoder(
78
+ remove_none_from_dict(
79
+ {
80
+ **self._client_wrapper.get_headers(),
81
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
82
+ }
83
+ )
84
+ ),
85
+ timeout=request_options.get("timeout_in_seconds")
86
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
87
+ else self._client_wrapper.get_timeout(),
88
+ retries=0,
89
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
90
+ )
91
+ if 200 <= _response.status_code < 300:
92
+ return pydantic.parse_obj_as(PaginatedTestSuiteTestCaseList, _response.json()) # type: ignore
93
+ try:
94
+ _response_json = _response.json()
95
+ except JSONDecodeError:
96
+ raise ApiError(status_code=_response.status_code, body=_response.text)
97
+ raise ApiError(status_code=_response.status_code, body=_response_json)
98
+
28
99
  def upsert_test_suite_test_case(
29
100
  self,
30
101
  id: str,
@@ -169,6 +240,76 @@ class AsyncTestSuitesClient:
169
240
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
170
241
  self._client_wrapper = client_wrapper
171
242
 
243
+ async def list_test_suite_test_cases(
244
+ self,
245
+ id: str,
246
+ *,
247
+ limit: typing.Optional[int] = None,
248
+ offset: typing.Optional[int] = None,
249
+ request_options: typing.Optional[RequestOptions] = None,
250
+ ) -> PaginatedTestSuiteTestCaseList:
251
+ """
252
+ List the Test Cases associated with a Test Suite
253
+
254
+ Parameters:
255
+ - id: str. A UUID string identifying this test suite.
256
+
257
+ - limit: typing.Optional[int]. Number of results to return per page.
258
+
259
+ - offset: typing.Optional[int]. The initial index from which to return the results.
260
+
261
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
262
+ ---
263
+ from vellum.client import AsyncVellum
264
+
265
+ client = AsyncVellum(
266
+ api_key="YOUR_API_KEY",
267
+ )
268
+ await client.test_suites.list_test_suite_test_cases(
269
+ id="id",
270
+ )
271
+ """
272
+ _response = await self._client_wrapper.httpx_client.request(
273
+ "GET",
274
+ urllib.parse.urljoin(
275
+ f"{self._client_wrapper.get_environment().default}/",
276
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
277
+ ),
278
+ params=jsonable_encoder(
279
+ remove_none_from_dict(
280
+ {
281
+ "limit": limit,
282
+ "offset": offset,
283
+ **(
284
+ request_options.get("additional_query_parameters", {})
285
+ if request_options is not None
286
+ else {}
287
+ ),
288
+ }
289
+ )
290
+ ),
291
+ headers=jsonable_encoder(
292
+ remove_none_from_dict(
293
+ {
294
+ **self._client_wrapper.get_headers(),
295
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
296
+ }
297
+ )
298
+ ),
299
+ timeout=request_options.get("timeout_in_seconds")
300
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
301
+ else self._client_wrapper.get_timeout(),
302
+ retries=0,
303
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
304
+ )
305
+ if 200 <= _response.status_code < 300:
306
+ return pydantic.parse_obj_as(PaginatedTestSuiteTestCaseList, _response.json()) # type: ignore
307
+ try:
308
+ _response_json = _response.json()
309
+ except JSONDecodeError:
310
+ raise ApiError(status_code=_response.status_code, body=_response.text)
311
+ raise ApiError(status_code=_response.status_code, body=_response_json)
312
+
172
313
  async def upsert_test_suite_test_case(
173
314
  self,
174
315
  id: str,
vellum/types/__init__.py CHANGED
@@ -233,6 +233,7 @@ from .paginated_slim_deployment_read_list import PaginatedSlimDeploymentReadList
233
233
  from .paginated_slim_document_list import PaginatedSlimDocumentList
234
234
  from .paginated_slim_workflow_deployment_list import PaginatedSlimWorkflowDeploymentList
235
235
  from .paginated_test_suite_run_execution_list import PaginatedTestSuiteRunExecutionList
236
+ from .paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
236
237
  from .processing_failure_reason_enum import ProcessingFailureReasonEnum
237
238
  from .processing_state_enum import ProcessingStateEnum
238
239
  from .prompt_deployment_expand_meta_request_request import PromptDeploymentExpandMetaRequestRequest
@@ -418,7 +419,10 @@ from .test_suite_run_metric_output import (
418
419
  TestSuiteRunMetricOutput,
419
420
  TestSuiteRunMetricOutput_Error,
420
421
  TestSuiteRunMetricOutput_Number,
422
+ TestSuiteRunMetricOutput_String,
421
423
  )
424
+ from .test_suite_run_metric_string_output import TestSuiteRunMetricStringOutput
425
+ from .test_suite_run_metric_string_output_type_enum import TestSuiteRunMetricStringOutputTypeEnum
422
426
  from .test_suite_run_read import TestSuiteRunRead
423
427
  from .test_suite_run_state import TestSuiteRunState
424
428
  from .test_suite_run_test_suite import TestSuiteRunTestSuite
@@ -731,6 +735,7 @@ __all__ = [
731
735
  "PaginatedSlimDocumentList",
732
736
  "PaginatedSlimWorkflowDeploymentList",
733
737
  "PaginatedTestSuiteRunExecutionList",
738
+ "PaginatedTestSuiteTestCaseList",
734
739
  "ProcessingFailureReasonEnum",
735
740
  "ProcessingStateEnum",
736
741
  "PromptDeploymentExpandMetaRequestRequest",
@@ -893,6 +898,9 @@ __all__ = [
893
898
  "TestSuiteRunMetricOutput",
894
899
  "TestSuiteRunMetricOutput_Error",
895
900
  "TestSuiteRunMetricOutput_Number",
901
+ "TestSuiteRunMetricOutput_String",
902
+ "TestSuiteRunMetricStringOutput",
903
+ "TestSuiteRunMetricStringOutputTypeEnum",
896
904
  "TestSuiteRunRead",
897
905
  "TestSuiteRunState",
898
906
  "TestSuiteRunTestSuite",
@@ -0,0 +1,33 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+ from .test_suite_test_case import TestSuiteTestCase
8
+
9
+ try:
10
+ import pydantic.v1 as pydantic # type: ignore
11
+ except ImportError:
12
+ import pydantic # type: ignore
13
+
14
+
15
+ class PaginatedTestSuiteTestCaseList(pydantic.BaseModel):
16
+ count: int
17
+ next: typing.Optional[str] = None
18
+ previous: typing.Optional[str] = None
19
+ results: typing.List[TestSuiteTestCase]
20
+
21
+ def json(self, **kwargs: typing.Any) -> str:
22
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
+ return super().json(**kwargs_with_defaults)
24
+
25
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
26
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
27
+ return super().dict(**kwargs_with_defaults)
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
33
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -6,6 +6,17 @@ import typing
6
6
 
7
7
  from .test_suite_run_metric_error_output import TestSuiteRunMetricErrorOutput
8
8
  from .test_suite_run_metric_number_output import TestSuiteRunMetricNumberOutput
9
+ from .test_suite_run_metric_string_output import TestSuiteRunMetricStringOutput
10
+
11
+
12
+ class TestSuiteRunMetricOutput_String(TestSuiteRunMetricStringOutput):
13
+ type: typing.Literal["STRING"] = "STRING"
14
+
15
+ class Config:
16
+ frozen = True
17
+ smart_union = True
18
+ allow_population_by_field_name = True
19
+ populate_by_name = True
9
20
 
10
21
 
11
22
  class TestSuiteRunMetricOutput_Number(TestSuiteRunMetricNumberOutput):
@@ -28,4 +39,6 @@ class TestSuiteRunMetricOutput_Error(TestSuiteRunMetricErrorOutput):
28
39
  populate_by_name = True
29
40
 
30
41
 
31
- TestSuiteRunMetricOutput = typing.Union[TestSuiteRunMetricOutput_Number, TestSuiteRunMetricOutput_Error]
42
+ TestSuiteRunMetricOutput = typing.Union[
43
+ TestSuiteRunMetricOutput_String, TestSuiteRunMetricOutput_Number, TestSuiteRunMetricOutput_Error
44
+ ]
@@ -0,0 +1,34 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+
8
+ try:
9
+ import pydantic.v1 as pydantic # type: ignore
10
+ except ImportError:
11
+ import pydantic # type: ignore
12
+
13
+
14
+ class TestSuiteRunMetricStringOutput(pydantic.BaseModel):
15
+ """
16
+ Output for a test suite run metric that is of type STRING
17
+ """
18
+
19
+ value: str
20
+ name: str
21
+
22
+ def json(self, **kwargs: typing.Any) -> str:
23
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
24
+ return super().json(**kwargs_with_defaults)
25
+
26
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
27
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
28
+ return super().dict(**kwargs_with_defaults)
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
34
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ TestSuiteRunMetricStringOutputTypeEnum = typing.Literal["STRING"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.3.18
3
+ Version: 0.3.20
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,8 +1,8 @@
1
- vellum/__init__.py,sha256=17WXNkvq4OC3V1VqGWc64nJklzsPgBH0D_uux72OYng,33627
1
+ vellum/__init__.py,sha256=S-isP5rieWJQq1Bf7EcvFjLzGVfEaxtBJcgiMJcnSXE,33941
2
2
  vellum/client.py,sha256=XB_tltKpWwPoZpsm4g0ftLPKFYjZSLjLAteJwp-xSWA,96636
3
3
  vellum/core/__init__.py,sha256=RWfyDqkzWsf8e3VGc3NV60MovfJbg5XWzNFGB2DZ0hA,790
4
4
  vellum/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
5
- vellum/core/client_wrapper.py,sha256=q7IN9X3O0e7gE_jCujRH9gpJBAT3a1q6Lg2vgp8xSYI,1698
5
+ vellum/core/client_wrapper.py,sha256=uMDH7uKGgjUsZeA_L_bmnHsCUdhpqhH-dlHoV1B71Jo,1698
6
6
  vellum/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
7
7
  vellum/core/file.py,sha256=sy1RUGZ3aJYuw998bZytxxo6QdgKmlnlgBaMvwEKCGg,1480
8
8
  vellum/core/http_client.py,sha256=5ok6hqgZDJhg57EHvMnr0BBaHdG50QxFPKaCZ9aVWTc,5059
@@ -39,12 +39,12 @@ vellum/resources/sandboxes/client.py,sha256=gW_DTrJ3w6BfaSATZxB0Z-bxVUXQ0JtPAjL6
39
39
  vellum/resources/test_suite_runs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
40
40
  vellum/resources/test_suite_runs/client.py,sha256=T5vF1S5jDfQLxKOg-2Q2XYCF9g5W-dos6Ff6Av21gr8,17120
41
41
  vellum/resources/test_suites/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
42
- vellum/resources/test_suites/client.py,sha256=zB8Ne4rUqwyazytyBWNKuI449C8MB7S5dugRg5NBjd4,13316
42
+ vellum/resources/test_suites/client.py,sha256=7PmEjJ_2TlvqJoP3C4XkdA8SyYMHVQwREB4T8LowZbM,18966
43
43
  vellum/resources/workflow_deployments/__init__.py,sha256=-5BCA0kSmW6WUh4gqLuQtHv4zFdt9lccuDwMU5YvEu4,173
44
44
  vellum/resources/workflow_deployments/client.py,sha256=DUY1h8mvXqwP-zilmwoek_XbLNTFeeVbxgd7M-k2IzA,11164
45
45
  vellum/resources/workflow_deployments/types/__init__.py,sha256=rmS_4dtbgLHGNQJ_pOloygrjl4sNbKZjTEKBxbMyz6E,208
46
46
  vellum/resources/workflow_deployments/types/workflow_deployments_list_request_status.py,sha256=8-G1SalBR6-AfRnb6POOR9M3tvZa3CGwFIs1ArZb6uw,542
47
- vellum/types/__init__.py,sha256=59p1m_erR_1kg_kWmTUWaBafV5zzijV_5EZ7yJXIRvI,44795
47
+ vellum/types/__init__.py,sha256=8PerhxFNQHQwWDScY8jYUQySE3qHluQhXjT9iiEnbZs,45251
48
48
  vellum/types/api_node_result.py,sha256=aLOooryBCfglTeZwOuyyqRoHz5oPTja2mYYY7Gj8XxA,1040
49
49
  vellum/types/api_node_result_data.py,sha256=cQcZiwI1hjRvQFlkVEGxyaD360vEklIfjBmhBAeI75U,1215
50
50
  vellum/types/array_chat_message_content.py,sha256=Z7nKH8RNgot0i4-159w95OHywLjc-376gBPOovbw2hk,1087
@@ -184,6 +184,7 @@ vellum/types/paginated_slim_deployment_read_list.py,sha256=4pMZYAVl7pLI8d9-CE3NY
184
184
  vellum/types/paginated_slim_document_list.py,sha256=Zvr_VzHcUEEiqAXEitoaM5YcPcaTKgEx8fziy3SH1CU,1127
185
185
  vellum/types/paginated_slim_workflow_deployment_list.py,sha256=dCew3Xy72Mo5MHIBdCbcuDaH0v2yeCRNBDt4m-8tb0A,1168
186
186
  vellum/types/paginated_test_suite_run_execution_list.py,sha256=pwT-FeIxOBnP_S3kpqlAUOtlXEYfFgfViRGxeFTebRI,1117
187
+ vellum/types/paginated_test_suite_test_case_list.py,sha256=0XlghGkiSubI41oR1UGSdYOKDUM4XLCgmcElKaYFdkA,1101
187
188
  vellum/types/processing_failure_reason_enum.py,sha256=MDj2vNyO1Y-2WHuolkrGez8F1cZqS6ultfsqvGI4Fg8,752
188
189
  vellum/types/processing_state_enum.py,sha256=rMhw5oLZNfhR4QkIgFfLMWRSLXgHt9qhiguEqWQNz5k,962
189
190
  vellum/types/prompt_deployment_expand_meta_request_request.py,sha256=jvi3NW0nJxyLwNEhk35oEdAm_aDOuy48eNy5LqvkkRs,1885
@@ -301,7 +302,9 @@ vellum/types/test_suite_run_metric_error_output.py,sha256=N0ZRTO1QV4Bobrh9u1-k5q
301
302
  vellum/types/test_suite_run_metric_error_output_type_enum.py,sha256=ZPKy0jkcgfuMhI2hG_3UUcw2sYH1BlV_ze8Axlq5nIU,144
302
303
  vellum/types/test_suite_run_metric_number_output.py,sha256=vedeqnSpDl7Y23DdgAlcl16Gxd1WlNo4m4PQ2SGI8Tk,1020
303
304
  vellum/types/test_suite_run_metric_number_output_type_enum.py,sha256=sXoES0zoliicpd66SwlF6xsVUjWSezGNkuxp6CthO2s,146
304
- vellum/types/test_suite_run_metric_output.py,sha256=O_v0dGiAnXXRc_MpEZT3La5p6iBPPRNfNWJesGIHe9M,907
305
+ vellum/types/test_suite_run_metric_output.py,sha256=QkHRKO1tnQWoeCq7xc7TfSiAjC927Ha2hdePBJeEn0A,1291
306
+ vellum/types/test_suite_run_metric_string_output.py,sha256=FxScPpKm8kj6pGTTQ9slJgkb1PQZn5LBa0ZFOnCUxJw,1018
307
+ vellum/types/test_suite_run_metric_string_output_type_enum.py,sha256=6OKwFyk0SUq4IKp6yg_FAc3ADM0jVCK-chq5JR9iwqo,146
305
308
  vellum/types/test_suite_run_read.py,sha256=bb6kgQaMQpkshETe_dXiMNVCx3r05t12ajaiqTAnvHg,1551
306
309
  vellum/types/test_suite_run_state.py,sha256=myD2yLYpEiTUK4AyRZwl3MrXOKYkDA8k4fpqnDnALAY,1111
307
310
  vellum/types/test_suite_run_test_suite.py,sha256=jsSjV803xCQ4zQ29MCvCM06rH1PCviCZ7G8KzR-LiOA,953
@@ -359,7 +362,7 @@ vellum/types/workflow_result_event_output_data_search_results.py,sha256=wYc76-DW
359
362
  vellum/types/workflow_result_event_output_data_string.py,sha256=7SR46tKt-I_cGd_eVeKU8ymQ7R3vKkA_dFHCgAU1GcQ,1533
360
363
  vellum/types/workflow_stream_event.py,sha256=KA6Bkk_XA6AIPWR-1vKnwF1A8l_Bm5y0arQCWWWRpsk,911
361
364
  vellum/version.py,sha256=neLt8HBHHUtDF9M5fsyUzHT-pKooEPvceaLDqqIGb0s,77
362
- vellum_ai-0.3.18.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
363
- vellum_ai-0.3.18.dist-info/METADATA,sha256=xmyy_uoCv2fdkBQIDhrNBct_jo_Rv5gu2Ws3TLg-UGE,3550
364
- vellum_ai-0.3.18.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
365
- vellum_ai-0.3.18.dist-info/RECORD,,
365
+ vellum_ai-0.3.20.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
366
+ vellum_ai-0.3.20.dist-info/METADATA,sha256=lYn0SJcCZkYtLCFoarsT7BVerGQAFRPoWnzdCZsBlDY,3550
367
+ vellum_ai-0.3.20.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
368
+ vellum_ai-0.3.20.dist-info/RECORD,,