vellum-workflow-server 1.6.4.post2__py3-none-any.whl → 1.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of vellum-workflow-server might be problematic. Click here for more details.
- {vellum_workflow_server-1.6.4.post2.dist-info → vellum_workflow_server-1.7.0.dist-info}/METADATA +2 -2
- {vellum_workflow_server-1.6.4.post2.dist-info → vellum_workflow_server-1.7.0.dist-info}/RECORD +5 -5
- workflow_server/api/tests/test_workflow_view_stream_workflow_route.py +71 -1
- {vellum_workflow_server-1.6.4.post2.dist-info → vellum_workflow_server-1.7.0.dist-info}/WHEEL +0 -0
- {vellum_workflow_server-1.6.4.post2.dist-info → vellum_workflow_server-1.7.0.dist-info}/entry_points.txt +0 -0
{vellum_workflow_server-1.6.4.post2.dist-info → vellum_workflow_server-1.7.0.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: vellum-workflow-server
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.0
|
|
4
4
|
Summary:
|
|
5
5
|
License: AGPL
|
|
6
6
|
Requires-Python: >=3.9.0,<4
|
|
@@ -29,7 +29,7 @@ Requires-Dist: pyjwt (==2.10.0)
|
|
|
29
29
|
Requires-Dist: python-dotenv (==1.0.1)
|
|
30
30
|
Requires-Dist: retrying (==1.3.4)
|
|
31
31
|
Requires-Dist: sentry-sdk[flask] (==2.20.0)
|
|
32
|
-
Requires-Dist: vellum-ai (==1.
|
|
32
|
+
Requires-Dist: vellum-ai (==1.7.0)
|
|
33
33
|
Description-Content-Type: text/markdown
|
|
34
34
|
|
|
35
35
|
# Vellum Workflow Runner Server
|
{vellum_workflow_server-1.6.4.post2.dist-info → vellum_workflow_server-1.7.0.dist-info}/RECORD
RENAMED
|
@@ -5,7 +5,7 @@ workflow_server/api/healthz_view.py,sha256=itiRvBDBXncrw8Kbbc73UZLwqMAhgHOR3uSre
|
|
|
5
5
|
workflow_server/api/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
workflow_server/api/tests/test_input_display_mapping.py,sha256=drBZqMudFyB5wgiUOcMgRXz7E7ge-Qgxbstw4E4f0zE,2211
|
|
7
7
|
workflow_server/api/tests/test_workflow_view.py,sha256=d46UNMZUJbIKLiTJkjIsVpgqCJMwCe4LL6RjFkfx_Y4,29178
|
|
8
|
-
workflow_server/api/tests/test_workflow_view_stream_workflow_route.py,sha256=
|
|
8
|
+
workflow_server/api/tests/test_workflow_view_stream_workflow_route.py,sha256=K_T-AGeVZ-UOe5Cy8n8-yRof4eZPmLjEqvlEYalaIBo,33847
|
|
9
9
|
workflow_server/api/workflow_view.py,sha256=pqqgeQMVU3YjozjP26Q_f9qSsL_pjkpOQctsq_xwHfE,20447
|
|
10
10
|
workflow_server/code_exec_runner.py,sha256=5uTjHJ231aX6vMwPKRvLcQdbsIxhjTsGMk8G0MEnasU,2152
|
|
11
11
|
workflow_server/config.py,sha256=qmmTr6ty3ZN5LDOFs3TfUxYshYe6Mmn_LanplHHeE9Q,1796
|
|
@@ -28,7 +28,7 @@ workflow_server/utils/tests/test_sentry_integration.py,sha256=LGmWiaLhFrx-jslrRj
|
|
|
28
28
|
workflow_server/utils/tests/test_system_utils.py,sha256=_4GwXvVvU5BrATxUEWwQIPg0bzQXMWBtiBmjP8MTxJM,4314
|
|
29
29
|
workflow_server/utils/tests/test_utils.py,sha256=0Nq6du8o-iBtTrip9_wgHES53JSiJbVdSXaBnPobw3s,6930
|
|
30
30
|
workflow_server/utils/utils.py,sha256=ZPoM1Suhid22dpB8oEFLux8wx-9iyzmSfWuYxSCrgWk,4774
|
|
31
|
-
vellum_workflow_server-1.
|
|
32
|
-
vellum_workflow_server-1.
|
|
33
|
-
vellum_workflow_server-1.
|
|
34
|
-
vellum_workflow_server-1.
|
|
31
|
+
vellum_workflow_server-1.7.0.dist-info/METADATA,sha256=I5OXyosyGAtBVxLGNuQaUBgzOMd0PnJr0PujFy3tCYI,2267
|
|
32
|
+
vellum_workflow_server-1.7.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
33
|
+
vellum_workflow_server-1.7.0.dist-info/entry_points.txt,sha256=uB_0yPkr7YV6RhEXzvFReUM8P4OQBlVXD6TN6eb9-oc,277
|
|
34
|
+
vellum_workflow_server-1.7.0.dist-info/RECORD,,
|
|
@@ -396,7 +396,8 @@ from vellum.workflows.inputs import BaseInputs
|
|
|
396
396
|
assert events[2]["name"] == "workflow.execution.rejected"
|
|
397
397
|
assert events[2]["span_id"] == events[1]["span_id"]
|
|
398
398
|
assert (
|
|
399
|
-
"Failed to initialize workflow: unexpected indent (inputs.py, line 3)"
|
|
399
|
+
"Failed to initialize workflow: Failed to load workflow module: unexpected indent (inputs.py, line 3)"
|
|
400
|
+
in events[2]["body"]["error"]["message"]
|
|
400
401
|
)
|
|
401
402
|
|
|
402
403
|
assert events[3] == {
|
|
@@ -1031,3 +1032,72 @@ class Workflow(BaseWorkflow):
|
|
|
1031
1032
|
assert len(event_names) == 2, "Should include 2 events"
|
|
1032
1033
|
assert "workflow.execution.initiated" in event_names, "Should include workflow.execution.initiated event"
|
|
1033
1034
|
assert "workflow.execution.fulfilled" in event_names, "Should include workflow.execution.fulfilled event"
|
|
1035
|
+
|
|
1036
|
+
|
|
1037
|
+
def test_stream_workflow_route__with_invalid_nested_set_graph(both_stream_types):
|
|
1038
|
+
"""
|
|
1039
|
+
Tests that a workflow with an invalid nested set graph structure raises a clear error in the stream response.
|
|
1040
|
+
"""
|
|
1041
|
+
# GIVEN a Flask application and invalid workflow content with nested set graph
|
|
1042
|
+
span_id = uuid4()
|
|
1043
|
+
|
|
1044
|
+
invalid_workflow_content = """
|
|
1045
|
+
from vellum.workflows import BaseWorkflow
|
|
1046
|
+
from vellum.workflows.nodes import BaseNode
|
|
1047
|
+
|
|
1048
|
+
class TestNode(BaseNode):
|
|
1049
|
+
class Outputs(BaseNode.Outputs):
|
|
1050
|
+
value = "test"
|
|
1051
|
+
|
|
1052
|
+
class InvalidWorkflow(BaseWorkflow):
|
|
1053
|
+
graph = {TestNode, {TestNode}}
|
|
1054
|
+
|
|
1055
|
+
class Outputs(BaseWorkflow.Outputs):
|
|
1056
|
+
result = TestNode.Outputs.value
|
|
1057
|
+
"""
|
|
1058
|
+
|
|
1059
|
+
request_body = {
|
|
1060
|
+
"timeout": 360,
|
|
1061
|
+
"execution_id": str(span_id),
|
|
1062
|
+
"inputs": [],
|
|
1063
|
+
"environment_api_key": "test",
|
|
1064
|
+
"module": "workflow",
|
|
1065
|
+
"files": {
|
|
1066
|
+
"__init__.py": "",
|
|
1067
|
+
"workflow.py": invalid_workflow_content,
|
|
1068
|
+
},
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
# WHEN we call the stream route
|
|
1072
|
+
status_code, events = both_stream_types(request_body)
|
|
1073
|
+
|
|
1074
|
+
# THEN we get a 200 response
|
|
1075
|
+
assert status_code == 200, events
|
|
1076
|
+
|
|
1077
|
+
# THEN we get the expected events: vembda initiated, workflow initiated, workflow rejected, vembda fulfilled
|
|
1078
|
+
assert len(events) == 4
|
|
1079
|
+
|
|
1080
|
+
# AND the first event should be vembda execution initiated
|
|
1081
|
+
assert events[0]["name"] == "vembda.execution.initiated"
|
|
1082
|
+
assert events[0]["span_id"] == str(span_id)
|
|
1083
|
+
|
|
1084
|
+
# AND the second event should be workflow execution initiated
|
|
1085
|
+
assert events[1]["name"] == "workflow.execution.initiated"
|
|
1086
|
+
|
|
1087
|
+
# AND the third event should be workflow execution rejected
|
|
1088
|
+
assert events[2]["name"] == "workflow.execution.rejected"
|
|
1089
|
+
assert events[1]["span_id"] == events[2]["span_id"]
|
|
1090
|
+
|
|
1091
|
+
# AND the error message should contain information about the invalid graph structure
|
|
1092
|
+
error_message = events[2]["body"]["error"]["message"]
|
|
1093
|
+
expected_message = (
|
|
1094
|
+
"Failed to initialize workflow: Invalid graph structure detected. "
|
|
1095
|
+
"Nested sets or unsupported graph types are not allowed. "
|
|
1096
|
+
"Please contact Vellum support for assistance with Workflow configuration."
|
|
1097
|
+
)
|
|
1098
|
+
assert error_message == expected_message
|
|
1099
|
+
|
|
1100
|
+
# AND the fourth event should be vembda execution fulfilled
|
|
1101
|
+
assert events[3]["name"] == "vembda.execution.fulfilled"
|
|
1102
|
+
assert events[3]["span_id"] == str(span_id)
|
|
1103
|
+
assert events[3]["body"]["exit_code"] == 0
|
{vellum_workflow_server-1.6.4.post2.dist-info → vellum_workflow_server-1.7.0.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|