vellum-ai 0.13.19__py3-none-any.whl → 0.13.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 +2 -0
- vellum/client/core/client_wrapper.py +1 -1
- vellum/client/resources/test_suites/client.py +44 -8
- vellum/client/types/__init__.py +2 -0
- vellum/client/types/container_image_container_image_tag.py +21 -0
- vellum/client/types/container_image_read.py +2 -1
- vellum/types/container_image_container_image_tag.py +3 -0
- vellum/workflows/nodes/core/inline_subworkflow_node/node.py +48 -3
- {vellum_ai-0.13.19.dist-info → vellum_ai-0.13.20.dist-info}/METADATA +1 -1
- {vellum_ai-0.13.19.dist-info → vellum_ai-0.13.20.dist-info}/RECORD +33 -31
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +2 -3
- vellum_ee/workflows/display/nodes/vellum/utils.py +1 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +9 -30
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +22 -36
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +35 -70
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +2 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +2 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +2 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +24 -57
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +4 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +2 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +2 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +2 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +4 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +2 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +2 -2
- vellum_ee/workflows/display/utils/vellum.py +0 -2
- vellum_ee/workflows/display/vellum.py +0 -2
- vellum_ee/workflows/display/workflows/vellum_workflow_display.py +1 -8
- vellum_ee/workflows/tests/local_workflow/display/workflow.py +0 -2
- {vellum_ai-0.13.19.dist-info → vellum_ai-0.13.20.dist-info}/LICENSE +0 -0
- {vellum_ai-0.13.19.dist-info → vellum_ai-0.13.20.dist-info}/WHEEL +0 -0
- {vellum_ai-0.13.19.dist-info → vellum_ai-0.13.20.dist-info}/entry_points.txt +0 -0
vellum/__init__.py
CHANGED
@@ -64,6 +64,7 @@ from .types import (
|
|
64
64
|
ConditionCombinator,
|
65
65
|
ConditionalNodeResult,
|
66
66
|
ConditionalNodeResultData,
|
67
|
+
ContainerImageContainerImageTag,
|
67
68
|
ContainerImageRead,
|
68
69
|
CreateTestSuiteTestCaseRequest,
|
69
70
|
DeploymentHistoryItem,
|
@@ -586,6 +587,7 @@ __all__ = [
|
|
586
587
|
"ConditionCombinator",
|
587
588
|
"ConditionalNodeResult",
|
588
589
|
"ConditionalNodeResultData",
|
590
|
+
"ContainerImageContainerImageTag",
|
589
591
|
"ContainerImageRead",
|
590
592
|
"CreateTestSuiteTestCaseRequest",
|
591
593
|
"DeploymentHistoryItem",
|
@@ -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.13.
|
21
|
+
"X-Fern-SDK-Version": "0.13.20",
|
22
22
|
}
|
23
23
|
headers["X_API_KEY"] = self.api_key
|
24
24
|
return headers
|
@@ -139,21 +139,39 @@ class TestSuitesClient:
|
|
139
139
|
|
140
140
|
Examples
|
141
141
|
--------
|
142
|
-
from vellum import
|
142
|
+
from vellum import (
|
143
|
+
NamedTestCaseArrayVariableValueRequest,
|
144
|
+
NamedTestCaseStringVariableValueRequest,
|
145
|
+
StringVellumValueRequest,
|
146
|
+
Vellum,
|
147
|
+
)
|
143
148
|
|
144
149
|
client = Vellum(
|
145
150
|
api_key="YOUR_API_KEY",
|
146
151
|
)
|
147
152
|
client.test_suites.upsert_test_suite_test_case(
|
148
153
|
id_="id",
|
154
|
+
label="Test Case 1",
|
149
155
|
input_values=[
|
150
156
|
NamedTestCaseStringVariableValueRequest(
|
151
|
-
|
157
|
+
value="What are your favorite colors?",
|
158
|
+
name="var_1",
|
152
159
|
)
|
153
160
|
],
|
154
161
|
evaluation_values=[
|
155
|
-
|
156
|
-
|
162
|
+
NamedTestCaseArrayVariableValueRequest(
|
163
|
+
value=[
|
164
|
+
StringVellumValueRequest(
|
165
|
+
value="Red",
|
166
|
+
),
|
167
|
+
StringVellumValueRequest(
|
168
|
+
value="Green",
|
169
|
+
),
|
170
|
+
StringVellumValueRequest(
|
171
|
+
value="Blue",
|
172
|
+
),
|
173
|
+
],
|
174
|
+
name="var_2",
|
157
175
|
)
|
158
176
|
],
|
159
177
|
)
|
@@ -463,7 +481,12 @@ class AsyncTestSuitesClient:
|
|
463
481
|
--------
|
464
482
|
import asyncio
|
465
483
|
|
466
|
-
from vellum import
|
484
|
+
from vellum import (
|
485
|
+
AsyncVellum,
|
486
|
+
NamedTestCaseArrayVariableValueRequest,
|
487
|
+
NamedTestCaseStringVariableValueRequest,
|
488
|
+
StringVellumValueRequest,
|
489
|
+
)
|
467
490
|
|
468
491
|
client = AsyncVellum(
|
469
492
|
api_key="YOUR_API_KEY",
|
@@ -473,14 +496,27 @@ class AsyncTestSuitesClient:
|
|
473
496
|
async def main() -> None:
|
474
497
|
await client.test_suites.upsert_test_suite_test_case(
|
475
498
|
id_="id",
|
499
|
+
label="Test Case 1",
|
476
500
|
input_values=[
|
477
501
|
NamedTestCaseStringVariableValueRequest(
|
478
|
-
|
502
|
+
value="What are your favorite colors?",
|
503
|
+
name="var_1",
|
479
504
|
)
|
480
505
|
],
|
481
506
|
evaluation_values=[
|
482
|
-
|
483
|
-
|
507
|
+
NamedTestCaseArrayVariableValueRequest(
|
508
|
+
value=[
|
509
|
+
StringVellumValueRequest(
|
510
|
+
value="Red",
|
511
|
+
),
|
512
|
+
StringVellumValueRequest(
|
513
|
+
value="Green",
|
514
|
+
),
|
515
|
+
StringVellumValueRequest(
|
516
|
+
value="Blue",
|
517
|
+
),
|
518
|
+
],
|
519
|
+
name="var_2",
|
484
520
|
)
|
485
521
|
],
|
486
522
|
)
|
vellum/client/types/__init__.py
CHANGED
@@ -68,6 +68,7 @@ from .components_schemas_pdf_search_result_meta_source_request import Components
|
|
68
68
|
from .condition_combinator import ConditionCombinator
|
69
69
|
from .conditional_node_result import ConditionalNodeResult
|
70
70
|
from .conditional_node_result_data import ConditionalNodeResultData
|
71
|
+
from .container_image_container_image_tag import ContainerImageContainerImageTag
|
71
72
|
from .container_image_read import ContainerImageRead
|
72
73
|
from .create_test_suite_test_case_request import CreateTestSuiteTestCaseRequest
|
73
74
|
from .deployment_history_item import DeploymentHistoryItem
|
@@ -577,6 +578,7 @@ __all__ = [
|
|
577
578
|
"ConditionCombinator",
|
578
579
|
"ConditionalNodeResult",
|
579
580
|
"ConditionalNodeResultData",
|
581
|
+
"ContainerImageContainerImageTag",
|
580
582
|
"ContainerImageRead",
|
581
583
|
"CreateTestSuiteTestCaseRequest",
|
582
584
|
"DeploymentHistoryItem",
|
@@ -0,0 +1,21 @@
|
|
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 ContainerImageContainerImageTag(UniversalBaseModel):
|
11
|
+
name: str
|
12
|
+
modified: dt.datetime
|
13
|
+
|
14
|
+
if IS_PYDANTIC_V2:
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
16
|
+
else:
|
17
|
+
|
18
|
+
class Config:
|
19
|
+
frozen = True
|
20
|
+
smart_union = True
|
21
|
+
extra = pydantic.Extra.allow
|
@@ -4,6 +4,7 @@ from ..core.pydantic_utilities import UniversalBaseModel
|
|
4
4
|
from .entity_visibility import EntityVisibility
|
5
5
|
import datetime as dt
|
6
6
|
import typing
|
7
|
+
from .container_image_container_image_tag import ContainerImageContainerImageTag
|
7
8
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
8
9
|
import pydantic
|
9
10
|
|
@@ -16,7 +17,7 @@ class ContainerImageRead(UniversalBaseModel):
|
|
16
17
|
modified: dt.datetime
|
17
18
|
repository: str
|
18
19
|
sha: str
|
19
|
-
tags: typing.List[
|
20
|
+
tags: typing.List[ContainerImageContainerImageTag]
|
20
21
|
|
21
22
|
if IS_PYDANTIC_V2:
|
22
23
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
@@ -1,12 +1,13 @@
|
|
1
|
-
from typing import TYPE_CHECKING, ClassVar, Generic, Iterator, Optional, Set, Type, TypeVar, Union
|
1
|
+
from typing import TYPE_CHECKING, Any, ClassVar, Dict, Generic, Iterator, Optional, Set, Tuple, Type, TypeVar, Union
|
2
2
|
|
3
3
|
from vellum.workflows.constants import UNDEF
|
4
4
|
from vellum.workflows.context import execution_context, get_parent_context
|
5
5
|
from vellum.workflows.errors.types import WorkflowErrorCode
|
6
6
|
from vellum.workflows.exceptions import NodeException
|
7
7
|
from vellum.workflows.inputs.base import BaseInputs
|
8
|
-
from vellum.workflows.nodes.bases.base import BaseNode
|
8
|
+
from vellum.workflows.nodes.bases.base import BaseNode, BaseNodeMeta
|
9
9
|
from vellum.workflows.outputs.base import BaseOutput, BaseOutputs
|
10
|
+
from vellum.workflows.references import OutputReference
|
10
11
|
from vellum.workflows.state.base import BaseState
|
11
12
|
from vellum.workflows.state.context import WorkflowContext
|
12
13
|
from vellum.workflows.types.core import EntityInputsInterface
|
@@ -19,7 +20,45 @@ if TYPE_CHECKING:
|
|
19
20
|
InnerStateType = TypeVar("InnerStateType", bound=BaseState)
|
20
21
|
|
21
22
|
|
22
|
-
class
|
23
|
+
class _InlineSubworkflowNodeMeta(BaseNodeMeta):
|
24
|
+
def __new__(cls, name: str, bases: Tuple[Type, ...], dct: Dict[str, Any]) -> Any:
|
25
|
+
node_class = super().__new__(cls, name, bases, dct)
|
26
|
+
|
27
|
+
subworkflow_attribute = dct.get("subworkflow")
|
28
|
+
if not subworkflow_attribute:
|
29
|
+
return node_class
|
30
|
+
|
31
|
+
if not issubclass(node_class, InlineSubworkflowNode):
|
32
|
+
raise ValueError("_InlineSubworkflowNodeMeta can only be used on subclasses of InlineSubworkflowNode")
|
33
|
+
|
34
|
+
subworkflow_outputs = getattr(subworkflow_attribute, "Outputs")
|
35
|
+
if not issubclass(subworkflow_outputs, BaseOutputs):
|
36
|
+
raise ValueError("subworkflow.Outputs must be a subclass of BaseOutputs")
|
37
|
+
|
38
|
+
outputs_class = dct.get("Outputs")
|
39
|
+
if not outputs_class:
|
40
|
+
raise ValueError("Outputs class not found in base classes")
|
41
|
+
|
42
|
+
if not issubclass(outputs_class, BaseNode.Outputs):
|
43
|
+
raise ValueError("Outputs class must be a subclass of BaseNode.Outputs")
|
44
|
+
|
45
|
+
for descriptor in subworkflow_outputs:
|
46
|
+
node_class.__annotate_outputs_class__(outputs_class, descriptor)
|
47
|
+
|
48
|
+
return node_class
|
49
|
+
|
50
|
+
def __getattribute__(cls, name: str) -> Any:
|
51
|
+
try:
|
52
|
+
return super().__getattribute__(name)
|
53
|
+
except AttributeError:
|
54
|
+
if name != "__wrapped_node__" and issubclass(cls, InlineSubworkflowNode):
|
55
|
+
return getattr(cls.__wrapped_node__, name)
|
56
|
+
raise
|
57
|
+
|
58
|
+
|
59
|
+
class InlineSubworkflowNode(
|
60
|
+
BaseNode[StateType], Generic[StateType, WorkflowInputsType, InnerStateType], metaclass=_InlineSubworkflowNodeMeta
|
61
|
+
):
|
23
62
|
"""
|
24
63
|
Used to execute a Subworkflow defined inline.
|
25
64
|
|
@@ -85,3 +124,9 @@ class InlineSubworkflowNode(BaseNode[StateType], Generic[StateType, WorkflowInpu
|
|
85
124
|
return self.subworkflow_inputs
|
86
125
|
else:
|
87
126
|
raise ValueError(f"Invalid subworkflow inputs type: {type(self.subworkflow_inputs)}")
|
127
|
+
|
128
|
+
@classmethod
|
129
|
+
def __annotate_outputs_class__(cls, outputs_class: Type[BaseOutputs], reference: OutputReference) -> None:
|
130
|
+
# Subclasses of InlineSubworkflowNode can override this method to provider their own
|
131
|
+
# approach to annotating the outputs class based on the `subworkflow.Outputs`
|
132
|
+
setattr(outputs_class, reference.name, reference)
|
@@ -43,14 +43,14 @@ vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=TMb8txILu2uWjzoxagh
|
|
43
43
|
vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=LFjLUrH6sJ4czPnExdRqFr0PB_yKBMLXLvK5GAzIAgc,3273
|
44
44
|
vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=i0XGbKecLiHtf7mBf2rbqldPgLcs1TitIphzcHRIvkA,341
|
45
45
|
vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=TxcAGZDl_hvJ7Y1hUi9YVEVrj9Ie0hKkASdpfRL4_cs,9227
|
46
|
-
vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=
|
46
|
+
vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=62baAElKoRKIoba0lLhnrXGWWx96B73VxKGxh7BaIxc,2612
|
47
47
|
vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=JVIMPR3WpveOCWZubHKZkE04mavnTdb_9QY_r3XliRg,3424
|
48
48
|
vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
49
|
vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=ulrpoYUW-5kIxfG4Lf5F2p0k_EoYKhmahEbF3P_eruM,1648
|
50
50
|
vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py,sha256=mtzB8LJlFCHVFM4H5AanLp29gQfaVmnN4A4iaRGJHoI,2427
|
51
51
|
vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=3uT7Gbc0f_mQ3u8uZuCWd0mJ4GtWbz2gbUMySYaVlNE,3774
|
52
52
|
vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=EoU1J7HfcszAZr7ROy_xsNhaDBRiI95-wTK-OzgBwvg,5861
|
53
|
-
vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=
|
53
|
+
vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=OEGHjQSbuUgJexXI1aubYW33z2F_YdkhQ8REahfz864,4320
|
54
54
|
vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
55
|
vellum_ee/workflows/display/tests/test_vellum_workflow_display.py,sha256=h4bE187MyM0eT_elFnOxwsCeMHeuzSK0orjgAy8kV1k,4952
|
56
56
|
vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -61,30 +61,30 @@ vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attr
|
|
61
61
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py,sha256=-12ZkZb3f5gyoNASV2yeQtMo5HmNsVEo8nXwL6IC-I8,6261
|
62
62
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py,sha256=6th6kCwzql6lddjkTQx4Jbvvs4ChqtJwctW-B4QuBhI,37352
|
63
63
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_trigger_serialization.py,sha256=EbVgg_3_ipTt3MOop4RARX0fmNjwqZtkhIXzx9nGw7Y,4487
|
64
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=
|
65
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=
|
66
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=
|
67
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=
|
68
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=
|
69
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=
|
70
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=
|
71
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=
|
72
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=
|
73
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=
|
74
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=
|
75
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=
|
76
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=
|
64
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=5LQ36vImbVRmLpOdhWKtGmr9pypeZc0HAzIxwQoKtWA,15890
|
65
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=3lmg0bP6QwnHjQCpxz3IiucowmgAcjelHRTE9JRQ9-A,29152
|
66
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=ddk2tx7dFqQ7o2JtRZz2Mv6GHEwjJSF_u-1Zg83q7to,47564
|
67
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=02gG5C0wHbjzuTgVYCsNrtW1kEOeaM_5zXmznaUKzgk,6079
|
68
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=Ah8CxAxAQYnxsNasLB8esN_c9eRDQnmV_aDWC9Kp98s,5746
|
69
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=0xK9TFqPD5Hy65T-iacZ8pjYHD8XkzZXS35rLwof7uc,7427
|
70
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=HEfRYBVwZ6fy0hHhgsgTBEQJJAp_0wsaCJ_OtpZGdqE,20578
|
71
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=L1SrD5KfZjlAVh2BkOe3pCQOstVf_SiqD0KGoZlknU8,16145
|
72
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=ojzdgGb2zGYloOX57V_FyXxjUqOnWMN6z8GUlF8yDMA,8422
|
73
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=SuADagoAr-IWZN5az98axWnXcSrlG6gXV72Q-ThozVU,8622
|
74
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=NcpcC9vENF0Z3Vg7b0G0WV7EJScmBKg-JtjQENMKvn0,12989
|
75
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=eQNyiNQG7Cgx0QW_xlN9tQql4D2ak_P2WB-OgMkAVEs,11295
|
76
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=9_mC6-_u3qxJZzkrYrDtzWhpKlnlOD4oXSj8Ztnwet4,7791
|
77
77
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=1HaEwIbxzWl2OEEVlsNcHFQKMhUKQPlsIMaHnjvMODI,3754
|
78
78
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=5eKEMwrKT5O8dPsOgQ89iZwzpA304jneimQeT9GlpLk,2428
|
79
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=
|
79
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=xmKyOKqGRhWUXXbTbCAXX40qINcvK7mjpEfXz0Ny21s,7404
|
80
80
|
vellum_ee/workflows/display/types.py,sha256=jWTpfQv3baEWjbP12duc3MBz3TK03Ja1UI5458PVQVY,4211
|
81
81
|
vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
|
-
vellum_ee/workflows/display/utils/vellum.py,sha256=
|
83
|
-
vellum_ee/workflows/display/vellum.py,sha256
|
82
|
+
vellum_ee/workflows/display/utils/vellum.py,sha256=I0a8zFg4YIiT1ZTI27sEHuT9AM9PzktqBmrQ-Mqs3Ww,7328
|
83
|
+
vellum_ee/workflows/display/vellum.py,sha256=-95xvit30nyP6Md29nHkfIrnFButZyCg8wz76oUHD0M,8105
|
84
84
|
vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
|
85
85
|
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=x4C621UTH_SZLJYmVBiC1q-D-wadJlTiSGlKAI6CUbA,14082
|
86
86
|
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=kp0u8LN_2IwshLrhMImhpZx1hRyAcD5gXY-kDuuaGMQ,1269
|
87
|
-
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=
|
87
|
+
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=h8lCnuBfI5muxDi8i9u6tlgJIGEoJnSPc7jbJmECygg,16836
|
88
88
|
vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
89
89
|
vellum_ee/workflows/server/virtual_file_loader.py,sha256=X_DdNK7MfyOjKWekk6YQpOSCT6klKcdjT6nVJcBH1sM,1481
|
90
90
|
vellum_ee/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -99,7 +99,7 @@ vellum_ee/workflows/tests/local_workflow/display/__init__.py,sha256=xo75Uqb4aErO
|
|
99
99
|
vellum_ee/workflows/tests/local_workflow/display/nodes/__init__.py,sha256=szW_mgOUriyZ6v1vlnevBgkzNi8g83-ihS98UOLHVcE,155
|
100
100
|
vellum_ee/workflows/tests/local_workflow/display/nodes/final_output.py,sha256=Kv92TCREiZsB9531KZYaBIq83uHn7e_ECw_yAbD1qfk,1017
|
101
101
|
vellum_ee/workflows/tests/local_workflow/display/nodes/templating_node.py,sha256=5cankEe1rDZlXKgILFSPbmN0tUZhIdmcFgz_AguXTJc,1229
|
102
|
-
vellum_ee/workflows/tests/local_workflow/display/workflow.py,sha256=
|
102
|
+
vellum_ee/workflows/tests/local_workflow/display/workflow.py,sha256=I0uc9hmeQGMxUJMiOu1btBpUb2aSvIXUSNS05WiPeNA,2336
|
103
103
|
vellum_ee/workflows/tests/local_workflow/inputs.py,sha256=4cgsZBoUbIY0Rs8gknC9yqxQ-sSoULclx_SAm1FT2RA,96
|
104
104
|
vellum_ee/workflows/tests/local_workflow/metadata.json,sha256=rdu3h5qkFZiqhCAMxoyoWyMI0O8QALC5-URvSIW6F00,24
|
105
105
|
vellum_ee/workflows/tests/local_workflow/nodes/__init__.py,sha256=1F6jxUpSKfPXPj4ZZKSbnX6Mg-VwF3euLJSZfGn6xkM,127
|
@@ -108,12 +108,12 @@ vellum_ee/workflows/tests/local_workflow/nodes/templating_node.py,sha256=NQwFN61
|
|
108
108
|
vellum_ee/workflows/tests/local_workflow/workflow.py,sha256=A4qOzOPNwePYxWbcAgIPLsmrVS_aVEZEc-wULSv787Q,393
|
109
109
|
vellum_ee/workflows/tests/test_display_meta.py,sha256=pzdqND4KLWs7EUIbpXuqgso7BIRpoUsO3T_bgeENs0Q,2205
|
110
110
|
vellum_ee/workflows/tests/test_virtual_files.py,sha256=TJEcMR0v2S8CkloXNmCHA0QW0K6pYNGaIjraJz7sFvY,2762
|
111
|
-
vellum/__init__.py,sha256=
|
111
|
+
vellum/__init__.py,sha256=BBb9aN9M6-bsnNIhk9YUVAzdW0e9QTdBaiSM5kr5FGU,35474
|
112
112
|
vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
|
113
113
|
vellum/client/__init__.py,sha256=8nZt88C9SVwWanjLbIQMU3rzb32h5UZfFMBx3VPHB50,111887
|
114
114
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
115
115
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
116
|
-
vellum/client/core/client_wrapper.py,sha256=
|
116
|
+
vellum/client/core/client_wrapper.py,sha256=z1NZHCGeJAfuF3tZN-NenmROQ_g76uDXyCzW3tI-Hbs,1869
|
117
117
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
118
118
|
vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
119
119
|
vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
@@ -160,7 +160,7 @@ vellum/client/resources/sandboxes/client.py,sha256=i-6DHap5k6gFcYS-kWI8ayJFVZxb-
|
|
160
160
|
vellum/client/resources/test_suite_runs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
161
161
|
vellum/client/resources/test_suite_runs/client.py,sha256=gCF1ewlUrCsZhnXYOYqdUuD2twTrQ-u95xOgvRy7WAw,15130
|
162
162
|
vellum/client/resources/test_suites/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
163
|
-
vellum/client/resources/test_suites/client.py,sha256=
|
163
|
+
vellum/client/resources/test_suites/client.py,sha256=SlO-IXyhddm1U6WtrLIUUvlImf2vXC22bX2n9fpp6-c,25969
|
164
164
|
vellum/client/resources/workflow_deployments/__init__.py,sha256=_duH6m1CDWcfqX6DTBNjO3ar4Xrl-f5PozMaTcT4Kow,251
|
165
165
|
vellum/client/resources/workflow_deployments/client.py,sha256=H9MhGYZVx1WLHE5j83Sl5HmX-CF6aJFCwQAGDG1n2oI,27149
|
166
166
|
vellum/client/resources/workflow_deployments/types/__init__.py,sha256=W7DKJ1nduwhRckYLvH7wHLdaGH9MXHTZkxwG7FdTngY,340
|
@@ -176,7 +176,7 @@ vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCat
|
|
176
176
|
vellum/client/resources/workspace_secrets/client.py,sha256=h7UzXLyTttPq1t-JZGMg1BWxypxJvBGUdqg7KGT7MK4,8027
|
177
177
|
vellum/client/resources/workspaces/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
178
178
|
vellum/client/resources/workspaces/client.py,sha256=RthwzN1o-Jxwg5yyNNodavFyNUSxfLoTv26w3mRR5g8,3595
|
179
|
-
vellum/client/types/__init__.py,sha256=
|
179
|
+
vellum/client/types/__init__.py,sha256=auehBXD_naQD0W9VJNIGNgDxE6kuc7HQaF6aaymjS4s,53468
|
180
180
|
vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
|
181
181
|
vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
|
182
182
|
vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
|
@@ -237,7 +237,8 @@ vellum/client/types/components_schemas_pdf_search_result_meta_source_request.py,
|
|
237
237
|
vellum/client/types/condition_combinator.py,sha256=NQ6-F85juf21jsRuZRA6PjIFv7ITVWG5myuuZdLxeQI,156
|
238
238
|
vellum/client/types/conditional_node_result.py,sha256=vx8xo9F1KoJqOnYPtSevfOcBxKYAk8J8JGWFr1c4UO8,784
|
239
239
|
vellum/client/types/conditional_node_result_data.py,sha256=yk4E7KHSzmKlweI9ce9eN_iW08V70KGmG1Z0K5455T0,604
|
240
|
-
vellum/client/types/
|
240
|
+
vellum/client/types/container_image_container_image_tag.py,sha256=ph9Xs0R386viUofCITdUfIKCLaDJokY5nzczf0iReuA,622
|
241
|
+
vellum/client/types/container_image_read.py,sha256=l7tYflFivZ7sKrHd9aIlBWbkh_ZnbmN6XDbWJgNrNDk,896
|
241
242
|
vellum/client/types/create_test_suite_test_case_request.py,sha256=SYUz7_aZMQlin_c1C0-B0W14YB0kC3cn21oPE4_64Ys,1711
|
242
243
|
vellum/client/types/deployment_history_item.py,sha256=YfcHo4X5OjHXsffndZoAjShYncUN19ZwIm96qKE0G7o,1310
|
243
244
|
vellum/client/types/deployment_provider_payload_response.py,sha256=b0lkt0rK88ARQaMWn9MAHeWtMBsZKofDMlOAUsQvv7g,818
|
@@ -810,6 +811,7 @@ vellum/types/components_schemas_pdf_search_result_meta_source_request.py,sha256=
|
|
810
811
|
vellum/types/condition_combinator.py,sha256=1wNfjIPngHhdUbhMpjNVZqUI8LEu0XIExUX4Rtln1Tg,158
|
811
812
|
vellum/types/conditional_node_result.py,sha256=zcfDgqzQWXVcqEQi_ozC_7l2to8Y3uNZ5mFN_uIVDW8,161
|
812
813
|
vellum/types/conditional_node_result_data.py,sha256=z7Mtn_iKkan2jrGc2Q7fx-anx3ijHSSqnZwAb1w4ouk,166
|
814
|
+
vellum/types/container_image_container_image_tag.py,sha256=RgDod58iPXdgq6sMp63qqmRF3gk_gTK1gwLVcgR58QA,173
|
813
815
|
vellum/types/container_image_read.py,sha256=36LQzvJaDGH26wjD6_WxgzwkslgRZihSYXu5n4W7abk,158
|
814
816
|
vellum/types/create_test_suite_test_case_request.py,sha256=D_d6psjOMWx5jr2c7FwNndSH1ay5afdu5QXckqtBmfU,173
|
815
817
|
vellum/types/deployment_history_item.py,sha256=VqJfKFgb_lxUd5Hr1xQtF63FBn7uzHV84L4pla2MER8,161
|
@@ -1315,7 +1317,7 @@ vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT
|
|
1315
1317
|
vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
|
1316
1318
|
vellum/workflows/nodes/core/error_node/node.py,sha256=MFHU5vITYSK-L9CuMZ49In2ZeNLWnhZD0f8r5dWvb5Y,1270
|
1317
1319
|
vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
|
1318
|
-
vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=
|
1320
|
+
vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=q8_s1uuoB6t_QutJ-wl7Nj3A_yQYWxpv7660kcBwcXA,5931
|
1319
1321
|
vellum/workflows/nodes/core/inline_subworkflow_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1320
1322
|
vellum/workflows/nodes/core/inline_subworkflow_node/tests/test_node.py,sha256=n0-821Ov9ZfRFX_lbzLy5o2rX8fEw2qoxz0aFWCOxVg,1547
|
1321
1323
|
vellum/workflows/nodes/core/map_node/__init__.py,sha256=MXpZYmGfhsMJHqqlpd64WiJRtbAtAMQz-_3fCU_cLV0,56
|
@@ -1442,8 +1444,8 @@ vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528
|
|
1442
1444
|
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1443
1445
|
vellum/workflows/workflows/base.py,sha256=k0kUWWko4fHyCqLSU_1cBK_pXZpl9MXekWiG-bdOAo0,18353
|
1444
1446
|
vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
|
1445
|
-
vellum_ai-0.13.
|
1446
|
-
vellum_ai-0.13.
|
1447
|
-
vellum_ai-0.13.
|
1448
|
-
vellum_ai-0.13.
|
1449
|
-
vellum_ai-0.13.
|
1447
|
+
vellum_ai-0.13.20.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1448
|
+
vellum_ai-0.13.20.dist-info/METADATA,sha256=TbxOMd3MKv1utYPQA2QHrmmbGBD5eSJaj1QPRLHkQsE,5335
|
1449
|
+
vellum_ai-0.13.20.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
1450
|
+
vellum_ai-0.13.20.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1451
|
+
vellum_ai-0.13.20.dist-info/RECORD,,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from uuid import UUID
|
2
|
-
from typing import
|
2
|
+
from typing import Generic, Optional, TypeVar
|
3
3
|
|
4
4
|
from vellum.workflows.nodes import SubworkflowDeploymentNode
|
5
5
|
from vellum.workflows.types.core import JsonObject
|
@@ -15,7 +15,6 @@ _SubworkflowDeploymentNodeType = TypeVar("_SubworkflowDeploymentNodeType", bound
|
|
15
15
|
class BaseSubworkflowDeploymentNodeDisplay(
|
16
16
|
BaseNodeVellumDisplay[_SubworkflowDeploymentNodeType], Generic[_SubworkflowDeploymentNodeType]
|
17
17
|
):
|
18
|
-
subworkflow_input_ids_by_name: ClassVar[Dict[str, UUID]] = {}
|
19
18
|
|
20
19
|
def serialize(
|
21
20
|
self, display_context: WorkflowDisplayContext, error_output_id: Optional[UUID] = None, **kwargs
|
@@ -30,7 +29,7 @@ class BaseSubworkflowDeploymentNodeDisplay(
|
|
30
29
|
input_name=variable_name,
|
31
30
|
value=variable_value,
|
32
31
|
display_context=display_context,
|
33
|
-
input_id=self.
|
32
|
+
input_id=self.node_input_ids_by_name.get(variable_name),
|
34
33
|
)
|
35
34
|
for variable_name, variable_value in subworkflow_inputs.items()
|
36
35
|
]
|
@@ -27,7 +27,7 @@ def create_node_input(
|
|
27
27
|
input_name: str,
|
28
28
|
value: Any,
|
29
29
|
display_context: WorkflowDisplayContext,
|
30
|
-
input_id: Union[Optional[UUID], Optional[str]],
|
30
|
+
input_id: Union[Optional[UUID], Optional[str]] = None,
|
31
31
|
pointer_type: Optional[Type[NodeInputValuePointerRule]] = ConstantValuePointer,
|
32
32
|
) -> NodeInput:
|
33
33
|
input_id = str(input_id) if input_id else str(uuid4_from_hash(f"{node_id}|{input_name}"))
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py
CHANGED
@@ -210,11 +210,11 @@ def test_serialize_workflow(vellum_client):
|
|
210
210
|
"target_handle_id": "06853542-e1a1-4a00-bd1e-4ac40f347b32",
|
211
211
|
"output_id": "9a37bf7d-484e-4725-903e-f3254df38a0a",
|
212
212
|
"output_type": "JSON",
|
213
|
-
"node_input_id": "
|
213
|
+
"node_input_id": "b49f0f85-37fc-4686-81a7-287c06634661",
|
214
214
|
},
|
215
215
|
"inputs": [
|
216
216
|
{
|
217
|
-
"id": "
|
217
|
+
"id": "b49f0f85-37fc-4686-81a7-287c06634661",
|
218
218
|
"key": "node_input",
|
219
219
|
"value": {
|
220
220
|
"rules": [
|
@@ -233,14 +233,7 @@ def test_serialize_workflow(vellum_client):
|
|
233
233
|
"display_data": {"position": {"x": 0.0, "y": 0.0}},
|
234
234
|
"base": {
|
235
235
|
"name": "FinalOutputNode",
|
236
|
-
"module": [
|
237
|
-
"vellum",
|
238
|
-
"workflows",
|
239
|
-
"nodes",
|
240
|
-
"displayable",
|
241
|
-
"final_output_node",
|
242
|
-
"node",
|
243
|
-
],
|
236
|
+
"module": ["vellum", "workflows", "nodes", "displayable", "final_output_node", "node"],
|
244
237
|
},
|
245
238
|
"definition": None,
|
246
239
|
},
|
@@ -253,11 +246,11 @@ def test_serialize_workflow(vellum_client):
|
|
253
246
|
"target_handle_id": "80d0894f-642e-4d2e-b43a-f236e7bedb3c",
|
254
247
|
"output_id": "5090e96d-5787-4a08-bf58-129101cf2548",
|
255
248
|
"output_type": "JSON",
|
256
|
-
"node_input_id": "
|
249
|
+
"node_input_id": "5e892e5b-0004-4a04-bd2e-1ea9e0e5d3f9",
|
257
250
|
},
|
258
251
|
"inputs": [
|
259
252
|
{
|
260
|
-
"id": "
|
253
|
+
"id": "5e892e5b-0004-4a04-bd2e-1ea9e0e5d3f9",
|
261
254
|
"key": "node_input",
|
262
255
|
"value": {
|
263
256
|
"rules": [
|
@@ -276,14 +269,7 @@ def test_serialize_workflow(vellum_client):
|
|
276
269
|
"display_data": {"position": {"x": 0.0, "y": 0.0}},
|
277
270
|
"base": {
|
278
271
|
"name": "FinalOutputNode",
|
279
|
-
"module": [
|
280
|
-
"vellum",
|
281
|
-
"workflows",
|
282
|
-
"nodes",
|
283
|
-
"displayable",
|
284
|
-
"final_output_node",
|
285
|
-
"node",
|
286
|
-
],
|
272
|
+
"module": ["vellum", "workflows", "nodes", "displayable", "final_output_node", "node"],
|
287
273
|
},
|
288
274
|
"definition": None,
|
289
275
|
},
|
@@ -296,11 +282,11 @@ def test_serialize_workflow(vellum_client):
|
|
296
282
|
"target_handle_id": "0c98c306-b519-40d7-8b05-321b1dfd7f11",
|
297
283
|
"output_id": "44ea8d75-e2a8-4627-85b1-8504b65d25c9",
|
298
284
|
"output_type": "NUMBER",
|
299
|
-
"node_input_id": "
|
285
|
+
"node_input_id": "14345321-7e6b-4e2a-918a-7a5b0064f047",
|
300
286
|
},
|
301
287
|
"inputs": [
|
302
288
|
{
|
303
|
-
"id": "
|
289
|
+
"id": "14345321-7e6b-4e2a-918a-7a5b0064f047",
|
304
290
|
"key": "node_input",
|
305
291
|
"value": {
|
306
292
|
"rules": [
|
@@ -319,14 +305,7 @@ def test_serialize_workflow(vellum_client):
|
|
319
305
|
"display_data": {"position": {"x": 0.0, "y": 0.0}},
|
320
306
|
"base": {
|
321
307
|
"name": "FinalOutputNode",
|
322
|
-
"module": [
|
323
|
-
"vellum",
|
324
|
-
"workflows",
|
325
|
-
"nodes",
|
326
|
-
"displayable",
|
327
|
-
"final_output_node",
|
328
|
-
"node",
|
329
|
-
],
|
308
|
+
"module": ["vellum", "workflows", "nodes", "displayable", "final_output_node", "node"],
|
330
309
|
},
|
331
310
|
"definition": None,
|
332
311
|
},
|