vellum-ai 1.6.3__py3-none-any.whl → 1.6.4__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/client/core/client_wrapper.py +2 -2
- vellum/workflows/nodes/core/error_node/node.py +3 -2
- vellum/workflows/nodes/displayable/conditional_node/node.py +3 -2
- vellum/workflows/nodes/displayable/merge_node/node.py +4 -1
- vellum/workflows/nodes/displayable/note_node/node.py +4 -1
- {vellum_ai-1.6.3.dist-info → vellum_ai-1.6.4.dist-info}/METADATA +1 -1
- {vellum_ai-1.6.3.dist-info → vellum_ai-1.6.4.dist-info}/RECORD +12 -12
- vellum_ee/workflows/display/nodes/vellum/map_node.py +10 -9
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +5 -1
- {vellum_ai-1.6.3.dist-info → vellum_ai-1.6.4.dist-info}/LICENSE +0 -0
- {vellum_ai-1.6.3.dist-info → vellum_ai-1.6.4.dist-info}/WHEEL +0 -0
- {vellum_ai-1.6.3.dist-info → vellum_ai-1.6.4.dist-info}/entry_points.txt +0 -0
@@ -27,10 +27,10 @@ class BaseClientWrapper:
|
|
27
27
|
|
28
28
|
def get_headers(self) -> typing.Dict[str, str]:
|
29
29
|
headers: typing.Dict[str, str] = {
|
30
|
-
"User-Agent": "vellum-ai/1.6.
|
30
|
+
"User-Agent": "vellum-ai/1.6.4",
|
31
31
|
"X-Fern-Language": "Python",
|
32
32
|
"X-Fern-SDK-Name": "vellum-ai",
|
33
|
-
"X-Fern-SDK-Version": "1.6.
|
33
|
+
"X-Fern-SDK-Version": "1.6.4",
|
34
34
|
**(self.get_custom_headers() or {}),
|
35
35
|
}
|
36
36
|
if self._api_version is not None:
|
@@ -1,13 +1,14 @@
|
|
1
|
-
from typing import ClassVar, Union
|
1
|
+
from typing import ClassVar, Generic, Union
|
2
2
|
|
3
3
|
from vellum.client.types.vellum_error import VellumError
|
4
4
|
from vellum.workflows.errors.types import WorkflowError, WorkflowErrorCode, vellum_error_to_workflow_error
|
5
5
|
from vellum.workflows.exceptions import NodeException
|
6
6
|
from vellum.workflows.nodes.bases.base import BaseNode
|
7
7
|
from vellum.workflows.ports import NodePorts
|
8
|
+
from vellum.workflows.types.generics import StateType
|
8
9
|
|
9
10
|
|
10
|
-
class ErrorNode(BaseNode):
|
11
|
+
class ErrorNode(BaseNode[StateType], Generic[StateType]):
|
11
12
|
"""
|
12
13
|
Used to raise an error to reject the surrounding Workflow.
|
13
14
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Set
|
1
|
+
from typing import Generic, Set
|
2
2
|
|
3
3
|
from vellum.workflows.nodes.bases import BaseNode
|
4
4
|
from vellum.workflows.outputs.base import BaseOutputs
|
@@ -6,9 +6,10 @@ from vellum.workflows.ports.port import Port
|
|
6
6
|
from vellum.workflows.ports.utils import validate_ports
|
7
7
|
from vellum.workflows.state.base import BaseState
|
8
8
|
from vellum.workflows.types import MergeBehavior
|
9
|
+
from vellum.workflows.types.generics import StateType
|
9
10
|
|
10
11
|
|
11
|
-
class ConditionalNode(BaseNode):
|
12
|
+
class ConditionalNode(BaseNode[StateType], Generic[StateType]):
|
12
13
|
"""
|
13
14
|
Used to conditionally determine which port to invoke next. This node exists to be backwards compatible with
|
14
15
|
Vellum's Conditional Node, and for most cases, you should extend `BaseNode.Ports` directly.
|
@@ -1,8 +1,11 @@
|
|
1
|
+
from typing import Generic
|
2
|
+
|
1
3
|
from vellum.workflows.nodes.bases import BaseNode
|
2
4
|
from vellum.workflows.types import MergeBehavior
|
5
|
+
from vellum.workflows.types.generics import StateType
|
3
6
|
|
4
7
|
|
5
|
-
class MergeNode(BaseNode):
|
8
|
+
class MergeNode(BaseNode[StateType], Generic[StateType]):
|
6
9
|
"""
|
7
10
|
Used to merge the control flow of multiple nodes into a single node. This node exists to be backwards compatible
|
8
11
|
with Vellum's Merge Node, and for most cases, you should extend from `BaseNode.Trigger` directly.
|
@@ -1,8 +1,11 @@
|
|
1
|
+
from typing import Generic
|
2
|
+
|
1
3
|
from vellum.workflows.nodes.bases import BaseNode
|
2
4
|
from vellum.workflows.types import MergeBehavior
|
5
|
+
from vellum.workflows.types.generics import StateType
|
3
6
|
|
4
7
|
|
5
|
-
class NoteNode(BaseNode):
|
8
|
+
class NoteNode(BaseNode[StateType], Generic[StateType]):
|
6
9
|
"""
|
7
10
|
A no-op Node purely used to display a note in the Vellum UI.
|
8
11
|
"""
|
@@ -48,7 +48,7 @@ vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=z4oeTgKnMGV
|
|
48
48
|
vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=9_AslWjzj4RHH2sq3SIaq9FU0NCg7ex5TIWrNMybqXg,2173
|
49
49
|
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=KA4U5NADWCBBbTG0f76OOFW9HvlWd5DfZoqN5Y0ZK9c,12167
|
50
50
|
vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=m20_ZZ3Au0ZCpI3TNC9xh54ld1X13CNq-T51VOtP23k,6434
|
51
|
-
vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=
|
51
|
+
vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=we7NENZpci-LiWXJFTPWzliCMdjzCMMMWUCfgJ-oP0g,4297
|
52
52
|
vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=xMHaPfTSZWYprQenlHm2g47u0a5O9Me_dhAjfqo8nKQ,3116
|
53
53
|
vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=6PcAFA_EJn7vEMdqgoRjYTLHwnXCrJv80B10zuUx4jE,1026
|
54
54
|
vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=uo4YZRV48iX4peGAA1xkGniSPrepywvW_gS7codt-VQ,3378
|
@@ -93,7 +93,7 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node
|
|
93
93
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=LnZp1YXDn-AaaxiYgxrhCQeH-rLgmlu_r_lvM65EQ5w,7517
|
94
94
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=-A9CAnzIhPMn44l_dwZcofBXBPNFa-oHke9p0w3W5PA,26358
|
95
95
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=gn7kisqAEG9JCZ18V88qMGvlcsTulSwpWvvEwjCfh6Y,21871
|
96
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=
|
96
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=I1Mlt2Iy88C98IpJ21jl4Xu7TtSHqyx_4A4bjJgTJUE,16990
|
97
97
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=UnfWTfKN8DrOLpjCfWMgENJBjgNLWcRVfexbwERKY-c,8501
|
98
98
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=SGlBiwohTTuf7oXqO3R1lP6u7gPea8Elt1CpZU_W9Bk,21482
|
99
99
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=JKfYNBCmy7n6v2fd6NyYGHI1_TJRlfDNWiZMvHrdCWU,13079
|
@@ -160,7 +160,7 @@ vellum/client/README.md,sha256=flqu57ubZNTfpq60CdLtJC9gp4WEkyjb_n_eZ4OYf9w,6497
|
|
160
160
|
vellum/client/__init__.py,sha256=rMnKRqL5-356SBc-rfm56MkO87PuAi2mtcfBszcJU1M,74316
|
161
161
|
vellum/client/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
|
162
162
|
vellum/client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
|
163
|
-
vellum/client/core/client_wrapper.py,sha256=
|
163
|
+
vellum/client/core/client_wrapper.py,sha256=EQroyMygQaKudbqG-NTWixPzjdmHV_wnRNH5sxTldIY,2840
|
164
164
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
165
165
|
vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
|
166
166
|
vellum/client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
|
@@ -1886,7 +1886,7 @@ vellum/workflows/nodes/bases/tests/test_base_adornment_node.py,sha256=fXZI9KqpS4
|
|
1886
1886
|
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=igJrcSxSZADk5tLpssAt0uAXe9oJoLbilzueJJvA5p4,10942
|
1887
1887
|
vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT9JL18-mRR4,455
|
1888
1888
|
vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
|
1889
|
-
vellum/workflows/nodes/core/error_node/node.py,sha256=
|
1889
|
+
vellum/workflows/nodes/core/error_node/node.py,sha256=CwGMLIq6z_MogmjlicBLZm2pE7VW69ZL8fnJzNEVKHs,1451
|
1890
1890
|
vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
|
1891
1891
|
vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=N6Yh1z_xlZif9bBPmpwOC3xzxaru3_F5sbFaYHm2x3A,7222
|
1892
1892
|
vellum/workflows/nodes/core/inline_subworkflow_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1936,7 +1936,7 @@ vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py,sh
|
|
1936
1936
|
vellum/workflows/nodes/displayable/code_execution_node/tests/test_node.py,sha256=RQy7SsA39kTJAudzpYNN3jK_kuq6bWNZUld54H5pRZA,40966
|
1937
1937
|
vellum/workflows/nodes/displayable/code_execution_node/utils.py,sha256=0F_4PVvB7vjsV0RS48Brv_4djebWOMR_zgzHxzA9iV4,3308
|
1938
1938
|
vellum/workflows/nodes/displayable/conditional_node/__init__.py,sha256=AS_EIqFdU1F9t8aLmbZU-rLh9ry6LCJ0uj0D8F0L5Uw,72
|
1939
|
-
vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=
|
1939
|
+
vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=2g32hWosE3zwVaK2UPFnVEer1Nbn04s3friF2rGztmE,1195
|
1940
1940
|
vellum/workflows/nodes/displayable/conftest.py,sha256=K2kLM2JGAfcrmmd92u8DXInUO5klFdggPWblg5RVcx4,5729
|
1941
1941
|
vellum/workflows/nodes/displayable/final_output_node/__init__.py,sha256=G7VXM4OWpubvSJtVkGmMNeqgb9GkM7qZT838eL18XU4,72
|
1942
1942
|
vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=1_F9S7w-gIEUoXIdilgpqDeCKxJ0_J0oTYvE35dbjHk,4908
|
@@ -1952,9 +1952,9 @@ vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=0O1dksk0h6-
|
|
1952
1952
|
vellum/workflows/nodes/displayable/inline_prompt_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1953
1953
|
vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py,sha256=bBHs90mV5SZ3rJPAL0wx4WWyawUA406LgMPOdvpZC_A,10923
|
1954
1954
|
vellum/workflows/nodes/displayable/merge_node/__init__.py,sha256=J8IC08dSH7P76wKlNuxe1sn7toNGtSQdFirUbtPDEs0,60
|
1955
|
-
vellum/workflows/nodes/displayable/merge_node/node.py,sha256=
|
1955
|
+
vellum/workflows/nodes/displayable/merge_node/node.py,sha256=_zHW9fReWdpiM3GiUzdEgyOSznRqkPsTj-XKD6Oja8I,563
|
1956
1956
|
vellum/workflows/nodes/displayable/note_node/__init__.py,sha256=KWA3P4fyYJ-fOTky8qNGlcOotQ-HeHJ9AjZt6mRQmCE,58
|
1957
|
-
vellum/workflows/nodes/displayable/note_node/node.py,sha256=
|
1957
|
+
vellum/workflows/nodes/displayable/note_node/node.py,sha256=aO54y6p5FjQe4XOSlQVRSVby4a5Ikp_ZS98GiNkM8Gs,507
|
1958
1958
|
vellum/workflows/nodes/displayable/prompt_deployment_node/__init__.py,sha256=krX1Hds-TSVYZsx0wJFX4wsAKkEFYOX1ifwRGiIM-EA,82
|
1959
1959
|
vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=XeBn6d3ce-RJuUiTwpDKUKUJvcYLQw61YufpIGVWPHY,2641
|
1960
1960
|
vellum/workflows/nodes/displayable/prompt_deployment_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -2063,8 +2063,8 @@ vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnad
|
|
2063
2063
|
vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2064
2064
|
vellum/workflows/workflows/tests/test_base_workflow.py,sha256=Boa-_m9ii2Qsa1RvVM-VYniF7zCpzGgEGy-OnPZkrHg,23941
|
2065
2065
|
vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
|
2066
|
-
vellum_ai-1.6.
|
2067
|
-
vellum_ai-1.6.
|
2068
|
-
vellum_ai-1.6.
|
2069
|
-
vellum_ai-1.6.
|
2070
|
-
vellum_ai-1.6.
|
2066
|
+
vellum_ai-1.6.4.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
2067
|
+
vellum_ai-1.6.4.dist-info/METADATA,sha256=kRTvoaljnXd0hIt_CQhEMNHXgv8YFwb5Momhc8sRRjY,5547
|
2068
|
+
vellum_ai-1.6.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
2069
|
+
vellum_ai-1.6.4.dist-info/entry_points.txt,sha256=xVavzAKN4iF_NbmhWOlOkHluka0YLkbN_pFQ9pW3gLI,117
|
2070
|
+
vellum_ai-1.6.4.dist-info/RECORD,,
|
@@ -32,15 +32,6 @@ class BaseMapNodeDisplay(BaseAdornmentNodeDisplay[_MapNodeType], Generic[_MapNod
|
|
32
32
|
|
33
33
|
items = raise_if_descriptor(node.items)
|
34
34
|
|
35
|
-
items_node_input = create_node_input(
|
36
|
-
node_id=node_id,
|
37
|
-
input_name="items",
|
38
|
-
value=items or [],
|
39
|
-
display_context=display_context,
|
40
|
-
input_id=self.node_input_ids_by_name.get("items"),
|
41
|
-
)
|
42
|
-
node_inputs = [items_node_input]
|
43
|
-
|
44
35
|
subworkflow_display = get_workflow_display(
|
45
36
|
base_display_class=display_context.workflow_display_class,
|
46
37
|
workflow_class=subworkflow,
|
@@ -58,6 +49,16 @@ class BaseMapNodeDisplay(BaseAdornmentNodeDisplay[_MapNodeType], Generic[_MapNod
|
|
58
49
|
for input_variable in input_variables
|
59
50
|
if isinstance(input_variable, dict) and input_variable["key"] == "items"
|
60
51
|
)
|
52
|
+
|
53
|
+
# Use the same ID for the map node's items input as the subworkflow's items input
|
54
|
+
items_node_input = create_node_input(
|
55
|
+
node_id=node_id,
|
56
|
+
input_name="items",
|
57
|
+
value=items or [],
|
58
|
+
display_context=display_context,
|
59
|
+
input_id=str(items_workflow_input_id),
|
60
|
+
)
|
61
|
+
node_inputs = [items_node_input]
|
61
62
|
item_workflow_input_id = next(
|
62
63
|
input_variable["id"]
|
63
64
|
for input_variable in input_variables
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py
CHANGED
@@ -81,7 +81,7 @@ def test_serialize_workflow():
|
|
81
81
|
"type": "MAP",
|
82
82
|
"inputs": [
|
83
83
|
{
|
84
|
-
"id": "
|
84
|
+
"id": "0acef1e7-caa1-4d9f-bb69-6981729af18d",
|
85
85
|
"key": "items",
|
86
86
|
"value": {
|
87
87
|
"rules": [
|
@@ -393,3 +393,7 @@ def test_serialize_workflow():
|
|
393
393
|
"workflow",
|
394
394
|
],
|
395
395
|
}
|
396
|
+
|
397
|
+
# AND the map node's items input ID should match the subworkflow's items input ID
|
398
|
+
items_input_id = map_node["data"]["items_input_id"]
|
399
|
+
assert map_node["inputs"][0]["id"] == items_input_id
|
File without changes
|
File without changes
|
File without changes
|