vellum-ai 0.12.14__py3-none-any.whl → 0.12.15__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 +6 -0
- vellum/client/__init__.py +2 -6
- vellum/client/core/client_wrapper.py +1 -1
- vellum/client/environment.py +3 -3
- vellum/client/resources/ad_hoc/client.py +2 -6
- vellum/client/resources/container_images/client.py +0 -8
- vellum/client/resources/metric_definitions/client.py +2 -6
- vellum/client/resources/workflows/client.py +8 -8
- vellum/client/types/__init__.py +6 -0
- vellum/client/types/audio_prompt_block.py +29 -0
- vellum/client/types/function_call_prompt_block.py +30 -0
- vellum/client/types/image_prompt_block.py +29 -0
- vellum/client/types/prompt_block.py +12 -1
- vellum/client/types/workflow_push_response.py +1 -0
- vellum/types/audio_prompt_block.py +3 -0
- vellum/types/function_call_prompt_block.py +3 -0
- vellum/types/image_prompt_block.py +3 -0
- {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/METADATA +2 -2
- {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/RECORD +36 -28
- vellum_cli/config.py +4 -0
- vellum_cli/pull.py +20 -5
- vellum_cli/push.py +7 -0
- vellum_cli/tests/test_pull.py +19 -1
- vellum_ee/workflows/display/nodes/vellum/__init__.py +2 -0
- vellum_ee/workflows/display/nodes/vellum/base_node.py +18 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +10 -41
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +4 -14
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +174 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +2 -10
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +2 -10
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +5 -19
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +2 -8
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +14 -25
- {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/LICENSE +0 -0
- {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/WHEEL +0 -0
- {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/entry_points.txt +0 -0
@@ -2,16 +2,16 @@ vellum_cli/CONTRIBUTING.md,sha256=FtDC7BGxSeMnwCXAUssFsAIElXtmJE-O5Z7BpolcgvI,29
|
|
2
2
|
vellum_cli/README.md,sha256=2NudRoLzWxNKqnuVy1JuQ7DerIaxWGYkrH8kMd-asIE,90
|
3
3
|
vellum_cli/__init__.py,sha256=iims87aL6HbwggCAh8JfLBNf3C7tN3TGDmlg7V5W9Lg,8506
|
4
4
|
vellum_cli/aliased_group.py,sha256=ugW498j0yv4ALJ8vS9MsO7ctDW7Jlir9j6nE_uHAP8c,3363
|
5
|
-
vellum_cli/config.py,sha256=
|
5
|
+
vellum_cli/config.py,sha256=998IZbvkrw2avjbvs8bw6NrbEgGz5UBKRbvKAcastJg,5493
|
6
6
|
vellum_cli/image_push.py,sha256=SJwhwWJsLjwGNezNVd_oCVpFMfPsAB3dfLWmriZZUtw,4419
|
7
7
|
vellum_cli/logger.py,sha256=PuRFa0WCh4sAGFS5aqWB0QIYpS6nBWwPJrIXpWxugV4,1022
|
8
|
-
vellum_cli/pull.py,sha256=
|
9
|
-
vellum_cli/push.py,sha256=
|
8
|
+
vellum_cli/pull.py,sha256=hYQBe2_-Y4Ieh_Jo54EwBUpqPYq6UYitUBPgqyOVba0,7499
|
9
|
+
vellum_cli/push.py,sha256=00VHNlUc41UdO59gwIhSuk3AFL3kDITNQdWCdnYAtxc,5633
|
10
10
|
vellum_cli/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
vellum_cli/tests/conftest.py,sha256=eFGwBxib3Nki830lIFintB0b6r4x8T_KMnmzhlTY5x0,1337
|
12
12
|
vellum_cli/tests/test_config.py,sha256=uvKGDc8BoVyT9_H0Z-g8469zVxomn6Oi3Zj-vK7O_wU,2631
|
13
13
|
vellum_cli/tests/test_main.py,sha256=qDZG-aQauPwBwM6A2DIu1494n47v3pL28XakTbLGZ-k,272
|
14
|
-
vellum_cli/tests/test_pull.py,sha256=
|
14
|
+
vellum_cli/tests/test_pull.py,sha256=6gbASF6ASy5YcdWjOCt6b5K0u2VWsFegdrTWu6sEVKs,19613
|
15
15
|
vellum_cli/tests/test_push.py,sha256=NpwGXuZSzrR7B6hBO1UF9O8im13_LlpSqncVSdzYDiQ,5812
|
16
16
|
vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
17
|
vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -26,8 +26,9 @@ vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
|
|
26
26
|
vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=QqR3Ly0RNrXwOeLdW5nERDFt0gRPf76n1bPES6o5UN4,1093
|
27
27
|
vellum_ee/workflows/display/nodes/types.py,sha256=St1BB6no528OyELGiyRabWao0GGw6mLhstQAvEACbGk,247
|
28
28
|
vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqUzHxRVnCS9Cd-4,973
|
29
|
-
vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=
|
29
|
+
vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=_raKY9eKi_OvIFn6nGvf9xKSboKtYLHCWaWCwDQFbOc,1567
|
30
30
|
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=4SSQGecKWHuoGy5YIGJeOZVHGKwTs_8Y-gf3GvsHb0M,8506
|
31
|
+
vellum_ee/workflows/display/nodes/vellum/base_node.py,sha256=CBE-4tgQhk5zEcQqGQ0R6ZqZbtNuxAaJ5tDD8jDLOfY,672
|
31
32
|
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=qrf2Ne8n2aaoa2xgK3ExCEGI9BA-2g1zmvjSHyzCWmQ,4230
|
32
33
|
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=EtdqJfhYw03PuT2iyJ6mSAZK4RsQqDie_2AnJAtMelk,13625
|
33
34
|
vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=ygTjSjYDI4DtkxADWub5rhBnRWItMKWF6fezBrgpOKA,1979
|
@@ -51,19 +52,20 @@ vellum_ee/workflows/display/tests/test_vellum_workflow_display.py,sha256=TEg3Qbd
|
|
51
52
|
vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
52
53
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=e__ae2yepB5vlgVT08sr1DDB8pYjax6VQLo5FtRk-nA,17934
|
53
54
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=F822H2tM3Fvmc2PvunrVCRhtSKQLLpi5y2L1gyJKa78,31576
|
54
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=
|
55
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=
|
55
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=T8gYYFd4jxOnrNp3Qhz4KH7ifvDPgyZxJJE7G9xt03U,52569
|
56
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=zQ0MYjHeXR7sx4vGWEH6761DEEZ8RYMNr6ocRmLEAG0,6460
|
57
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=YkgtdubGOl00kusqkADQ-YoTk6dCW83ShoV3DG9Pvuo,6182
|
56
58
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=vA8cd7PJYhf949OUGeYP_moKtMogSyfHN2Z-qzNQLwM,8294
|
57
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=
|
58
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=
|
59
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=
|
59
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=6z7WJ0GLhG7dhilenw7JTq1O8XUVeYmjJHHvgHBtQeU,21725
|
60
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=iFbqXQr-4VyaqAYbldzRS4jt6G8f1Eoa1lTlMgJQO-Y,15599
|
61
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=7f9sr8nv4pCqdic8E7RHDrbaOiExelIh7CZYAJ8QNus,9649
|
60
62
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=NkpgaTbu6nLr3iwgsSNtiHyiNDCUaFakd1JaoW6CC6Y,9489
|
61
63
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=9R6ELHBn9tsp3cy15q1qp1OByyCxFOVdrM67EwCYY50,12984
|
62
64
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=8bz0vm_EyQKSjnwS5vqqgnjE9ygvm-CaPKcwCfeOrlo,12704
|
63
65
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=6LrGPS7e9CWpjFq2hpliSzP9kDpZ9KqvBNlNO3sq8cs,8063
|
64
66
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=xG8nKA1iKXxUe1fnD2X6qm7cUGW14iq2P-L16zhcKC8,4271
|
65
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=
|
66
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=
|
67
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=Y_-JNnPI9nAK6cLWxGaxz9ngo0_Dr0j2VNqreFk4CtE,2659
|
68
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=jvjQju7DYUFQ3FffVVA7RXUO0UB7-Fhq_qH7MiT0XcI,8522
|
67
69
|
vellum_ee/workflows/display/types.py,sha256=FSPg3TO8iNE2gnl1vn-nsMfit2V6yeBXW0Igh089A9w,2011
|
68
70
|
vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
69
71
|
vellum_ee/workflows/display/utils/vellum.py,sha256=-cz3xB-_-r1O9TBdLQPBvlpptg9CrZVNQ50QimmJFnA,5032
|
@@ -74,12 +76,12 @@ vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha25
|
|
74
76
|
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=GhIviEMDWNw1p8z20ta08T5PeNCVJs5p2hrOX1uyNxg,17066
|
75
77
|
vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
78
|
vellum_ee/workflows/server/virtual_file_loader.py,sha256=sQQFqn7xI0GfUlypWkVFl-X5ShXTh9bXq8N6qlQvSoE,1452
|
77
|
-
vellum/__init__.py,sha256=
|
79
|
+
vellum/__init__.py,sha256=wO2rKMEtIjNEb53CstEj-0qkUDiKKmGb_uxXEl-jS8c,35776
|
78
80
|
vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
|
79
|
-
vellum/client/__init__.py,sha256=
|
81
|
+
vellum/client/__init__.py,sha256=7yb5YnhvHQUJusa1WyUZcAKGol3z-Lfu07EfD03eEW4,111291
|
80
82
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
81
83
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
82
|
-
vellum/client/core/client_wrapper.py,sha256=
|
84
|
+
vellum/client/core/client_wrapper.py,sha256=_Cf6x5JgwTAjYASLdfDJqsyFst0nGh8_6WqQT-DbLkk,1869
|
83
85
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
84
86
|
vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
85
87
|
vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
@@ -89,7 +91,7 @@ vellum/client/core/query_encoder.py,sha256=ekulqNd0j8TgD7ox-Qbz7liqX8-KP9blvT9Ds
|
|
89
91
|
vellum/client/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd864mS6vQZw,342
|
90
92
|
vellum/client/core/request_options.py,sha256=5cCGt5AEGgtP5xifDl4oVQUmSjlIA8FmRItAlJawM18,1417
|
91
93
|
vellum/client/core/serialization.py,sha256=D9h_t-RQON3-CHWs1C4ESY9B-Yd5d-l5lnTLb_X896g,9601
|
92
|
-
vellum/client/environment.py,sha256=
|
94
|
+
vellum/client/environment.py,sha256=bcAFjoE9XXd7tiysYS90Os669IJmUMZS2JZ_ZQn0Dpg,498
|
93
95
|
vellum/client/errors/__init__.py,sha256=HZB8vVqzDNx0M2uFJ05S5RcGTH95iVDl4v3rQ4xRqSw,343
|
94
96
|
vellum/client/errors/bad_request_error.py,sha256=_EbO8mWqN9kFZPvIap8qa1lL_EWkRcsZe1HKV9GDWJY,264
|
95
97
|
vellum/client/errors/forbidden_error.py,sha256=QO1kKlhClAPES6zsEK7g9pglWnxn3KWaOCAawWOg6Aw,263
|
@@ -97,9 +99,9 @@ vellum/client/errors/internal_server_error.py,sha256=8USCagXyJJ1MOm9snpcXIUt6eNX
|
|
97
99
|
vellum/client/errors/not_found_error.py,sha256=tBVCeBC8n3C811WHRj_n-hs3h8MqwR5gp0vLiobk7W8,262
|
98
100
|
vellum/client/resources/__init__.py,sha256=2B6Oim7PG4IxSUNSzDY1EruQHsaZ7konj3j_WSTydCs,1378
|
99
101
|
vellum/client/resources/ad_hoc/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
100
|
-
vellum/client/resources/ad_hoc/client.py,sha256=
|
102
|
+
vellum/client/resources/ad_hoc/client.py,sha256=_liorv4AsoJ55kVu0a5oWB3Qeff0iUKXqoHEIyDWLxc,14173
|
101
103
|
vellum/client/resources/container_images/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
102
|
-
vellum/client/resources/container_images/client.py,sha256=
|
104
|
+
vellum/client/resources/container_images/client.py,sha256=g8X3IkWFj43-sJMvirjDrh1-yjOFYV2C9xsGC20Xfjo,15003
|
103
105
|
vellum/client/resources/deployments/__init__.py,sha256=m64MNuPx3qVazOnTNwOY8oEeDrAkNwMJvUEe5xoMDvs,239
|
104
106
|
vellum/client/resources/deployments/client.py,sha256=ssXaHJXBxO_I8JLuijusDVWwsfYadTw3j7o41ICYtrY,38777
|
105
107
|
vellum/client/resources/deployments/types/__init__.py,sha256=29GVdoLOJsADSSSqZwb6CQPeEmPjkKrbsWfru1bemj8,321
|
@@ -116,7 +118,7 @@ vellum/client/resources/folder_entities/client.py,sha256=ep5dnfJmEuEyrOSUftEVwKa
|
|
116
118
|
vellum/client/resources/folder_entities/types/__init__.py,sha256=cHabrupjC-HL3kj-UZ9WdVzqHoQHCu6QsLFB3wlOs7k,212
|
117
119
|
vellum/client/resources/folder_entities/types/folder_entities_list_request_entity_status.py,sha256=nK9b9fRSeCfjn2V2Hifl1IbhFeVsNkoeXJ8rCAPADFg,183
|
118
120
|
vellum/client/resources/metric_definitions/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
119
|
-
vellum/client/resources/metric_definitions/client.py,sha256=
|
121
|
+
vellum/client/resources/metric_definitions/client.py,sha256=WfR2f9YtDIdb9yXD_xvJf4pfRr0jVH7QKiiUrPAaeLs,9870
|
120
122
|
vellum/client/resources/ml_models/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
121
123
|
vellum/client/resources/ml_models/client.py,sha256=XIYapTEY6GRNr7V0Kjy5bEeKmrhv9ul8qlQY2A5LFqQ,3872
|
122
124
|
vellum/client/resources/sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
@@ -133,12 +135,12 @@ vellum/client/resources/workflow_deployments/types/workflow_deployments_list_req
|
|
133
135
|
vellum/client/resources/workflow_sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
134
136
|
vellum/client/resources/workflow_sandboxes/client.py,sha256=3wVQxkjrJ5bIS8fB5FpKXCP2dX38299ghWrJ8YmXxwQ,7435
|
135
137
|
vellum/client/resources/workflows/__init__.py,sha256=Z4xi8Nxd9U4t35FQSepTt1p-ns0X1xtdNs168kUcuBk,153
|
136
|
-
vellum/client/resources/workflows/client.py,sha256=
|
138
|
+
vellum/client/resources/workflows/client.py,sha256=4TOVbNauZ7x84rot3FBo8KKqmjd1mMGKLLXE7BRFEK0,11179
|
137
139
|
vellum/client/resources/workflows/types/__init__.py,sha256=-uFca4ypncAOvfsg6sjD-5C9zWdA5qNvU6m675GphVg,177
|
138
140
|
vellum/client/resources/workflows/types/workflows_pull_request_format.py,sha256=dOWE_jnDnniIJLoeseeCms23aklghyBkoPmBFzcqqZk,165
|
139
141
|
vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
140
142
|
vellum/client/resources/workspace_secrets/client.py,sha256=h7UzXLyTttPq1t-JZGMg1BWxypxJvBGUdqg7KGT7MK4,8027
|
141
|
-
vellum/client/types/__init__.py,sha256=
|
143
|
+
vellum/client/types/__init__.py,sha256=NzUZ2aXt94v1CqcvgIA3vrSUVLDMM39rVeHm3_YqREw,54062
|
142
144
|
vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
|
143
145
|
vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
|
144
146
|
vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
|
@@ -159,6 +161,7 @@ vellum/client/types/array_vellum_value.py,sha256=6ZDizIzijUFX29JD4lnNv1mOH-venLD
|
|
159
161
|
vellum/client/types/array_vellum_value_request.py,sha256=SUIfUTeJTDcsH76mb_PfQv3q0GEUkVr4Gk-dqn2Qr-I,951
|
160
162
|
vellum/client/types/audio_chat_message_content.py,sha256=159ELbeifFmAOvqPKaVSemHytSJ6OR0kOCtspCj4Lmc,725
|
161
163
|
vellum/client/types/audio_chat_message_content_request.py,sha256=0iy-fv_AYp_3FIJUNza3aqCZrnHBsYN-IwQO690qeUk,754
|
164
|
+
vellum/client/types/audio_prompt_block.py,sha256=4gbzRmZfT_crv3YcGTq265LE-HnzB_bxxtK0aUKzEJY,1013
|
162
165
|
vellum/client/types/audio_variable_value.py,sha256=GLZMcQ_2IicejsXhvQz0kVNfIKmjLHqwa27qYOo881Y,747
|
163
166
|
vellum/client/types/audio_vellum_value.py,sha256=8tbwNkj5UtnjZhFIQZ18O233yCt4fK3BhXpR7S5VEt4,745
|
164
167
|
vellum/client/types/audio_vellum_value_request.py,sha256=KnEyYDvTVqNdYcb4v2AGs5nLbcWFSj351_A9nM2ad8Y,774
|
@@ -269,6 +272,7 @@ vellum/client/types/function_call_chat_message_content_request.py,sha256=HVGxHs6
|
|
269
272
|
vellum/client/types/function_call_chat_message_content_value.py,sha256=DHRZYAMc4Y5MerUS_6CIxQBtORftKn-gBx8Skgivm_A,736
|
270
273
|
vellum/client/types/function_call_chat_message_content_value_request.py,sha256=67EZ3qSR9zO5akOgloswRE0Pv8BcjtWhdTRJIwuQU04,743
|
271
274
|
vellum/client/types/function_call_input.py,sha256=Iiqk2-IX6xUI2UnRj3bum5C0OlQn9jRmBwatUzJQQt8,820
|
275
|
+
vellum/client/types/function_call_prompt_block.py,sha256=TFs-XtVM7F-Mg-KwVctOyOcSloVI1vIfsMEeEeLuu7Y,1052
|
272
276
|
vellum/client/types/function_call_request.py,sha256=udGEdk66q1zTpEFE2xq-cu6w_ahMpfQv_9lIey9x1G0,720
|
273
277
|
vellum/client/types/function_call_variable_value.py,sha256=VQKCiEtJsmIK3i7CtFV_2ZpxeX70rqpUViXIvAci8L0,702
|
274
278
|
vellum/client/types/function_call_vellum_value.py,sha256=lLJb-S_-S_UXm6una1BMyCbqLpMhbbMcaVIYNO45h5o,759
|
@@ -293,6 +297,7 @@ vellum/client/types/hkunlp_instructor_xl_vectorizer.py,sha256=0wDZyilAQD3SQYIOBx
|
|
293
297
|
vellum/client/types/hkunlp_instructor_xl_vectorizer_request.py,sha256=Mtg_hl-IIfa134LWBonkxOQ1dhjXkGkz7maDZ57o_d4,832
|
294
298
|
vellum/client/types/image_chat_message_content.py,sha256=1jHmNuLY2kuuSgJCqNmc4wUMw5aot6GLU6_hQ_99r2g,725
|
295
299
|
vellum/client/types/image_chat_message_content_request.py,sha256=b0K1NnY-NneG_V3JAnyr4H2jrPGOC1OQ-OcCmS1GCvE,754
|
300
|
+
vellum/client/types/image_prompt_block.py,sha256=JIcfWZAWYcOm04Y6XjmxPG58SaoXwIjuZwnVypEVahU,1008
|
296
301
|
vellum/client/types/image_variable_value.py,sha256=njfgKYFU5lTCeosINThWziVE_jpuBjcgntZ3xAALT58,750
|
297
302
|
vellum/client/types/image_vellum_value.py,sha256=69XnqE9m-bd3dOdMD73WtfDm_kDrVg-y3fi35akuqsk,748
|
298
303
|
vellum/client/types/image_vellum_value_request.py,sha256=-Q66T8M6fAf9K_v0LeRwZjB_6pkBUSyMUQc6plRRK5E,777
|
@@ -397,7 +402,7 @@ vellum/client/types/pdf_search_result_meta_source_request.py,sha256=nUhaD2Kw1paG
|
|
397
402
|
vellum/client/types/plain_text_prompt_block.py,sha256=cqEN-B4mcvMw_9lBN7FQG8pk9b5LBJ9xpM6PTgkGiqs,930
|
398
403
|
vellum/client/types/price.py,sha256=ewzXDBVLaleuXMVQ-gQ3G1Nl5J2OWOVEMEFfnQIpiTk,610
|
399
404
|
vellum/client/types/processing_failure_reason_enum.py,sha256=R_KIW7TcQejhc-vLhtNf9SdkYADgoZCn4ch4_RRIvsI,195
|
400
|
-
vellum/client/types/prompt_block.py,sha256=
|
405
|
+
vellum/client/types/prompt_block.py,sha256=PK3NMPLg0NSmrr7JpMQcbNzCo8DjTP9xvg6ENd2bJZk,747
|
401
406
|
vellum/client/types/prompt_block_state.py,sha256=BRAzTYARoSU36IVZGWMeeqhl5fgFMXCyhJ8rCbfB-f0,163
|
402
407
|
vellum/client/types/prompt_deployment_expand_meta_request.py,sha256=agsiAaHB6lDoZPlnfJ2nmhB4Ud4EiJJTX05YmduyCPo,1910
|
403
408
|
vellum/client/types/prompt_deployment_input_request.py,sha256=KrT4-Ew2VvTWXEkYQz2oyHn5EDOgrMW7FzRFaPH3ARg,353
|
@@ -611,7 +616,7 @@ vellum/client/types/workflow_output_search_results.py,sha256=r3RRGVVrH2H9NAuxA7q
|
|
611
616
|
vellum/client/types/workflow_output_string.py,sha256=_jclzbQ-Wlf-7FEVTWXhs9h5FWfj4xGpiODZBOzT43w,810
|
612
617
|
vellum/client/types/workflow_push_deployment_config_request.py,sha256=pG6bZtlw7S0TcXtNRQNa7y_2NodZe7dp5SchIrgRUVU,745
|
613
618
|
vellum/client/types/workflow_push_exec_config.py,sha256=6TaVMVqhSOz4DnY46l8axPDtytSioXDl9nHvFXSxH1g,94
|
614
|
-
vellum/client/types/workflow_push_response.py,sha256=
|
619
|
+
vellum/client/types/workflow_push_response.py,sha256=1vUSZmZ1GK1242dAkNwJnJI0rL3pBT3_0HOLLjdiutw,724
|
615
620
|
vellum/client/types/workflow_release_tag_read.py,sha256=S7ekl01oVDetL8R7MdBTb4cDhHN0W0iHGNJ1-ZpY3Tc,1155
|
616
621
|
vellum/client/types/workflow_release_tag_workflow_deployment_history_item.py,sha256=pjWobdk9mZD3Px86rwFHfs_PYJBGXDKQUkxsgNEe6EA,825
|
617
622
|
vellum/client/types/workflow_request_chat_history_input_request.py,sha256=WCZvwDuNS8ylWOOoKD3t7fHLSYB0h-fVCqeDRzqPoPA,898
|
@@ -733,6 +738,7 @@ vellum/types/array_vellum_value.py,sha256=7_gccasRhEX_dekrfpiM6sqGVXxnT6f5sLB904
|
|
733
738
|
vellum/types/array_vellum_value_request.py,sha256=-tnyAoCArVJRaTQFPDqgTHuzec1UgWpXqjEbUbhZbyI,164
|
734
739
|
vellum/types/audio_chat_message_content.py,sha256=beZpZqUrJQHis0bkhiPnJO9qbl8c2DZyv74dd1OZf8o,164
|
735
740
|
vellum/types/audio_chat_message_content_request.py,sha256=ySZZ8IARXUocjczLZ27CHEmRX3uY2UhBfTzaOE8CeRo,172
|
741
|
+
vellum/types/audio_prompt_block.py,sha256=zpQcvY3Fic82mPlPyOLCjZBBq0dFyCyKuGRkYNDWQko,156
|
736
742
|
vellum/types/audio_variable_value.py,sha256=lDlablFV78mXIRI7IJU1Pyj4SsACLTnwnRBw0UJO3RU,158
|
737
743
|
vellum/types/audio_vellum_value.py,sha256=-9HkLXeBD-IMh_TwKdmQVfAD_F0et2gYKT2ykb_jaAM,156
|
738
744
|
vellum/types/audio_vellum_value_request.py,sha256=YuwrbVZK1EuUKkir5H9-ipeLTPfSF8h6Yy5lS_pAZg4,164
|
@@ -843,6 +849,7 @@ vellum/types/function_call_chat_message_content_request.py,sha256=Pe-BkV1-7hTxkY
|
|
843
849
|
vellum/types/function_call_chat_message_content_value.py,sha256=KETBajaPRZGjpNc4H09C0xauVhKkf-mDy6yPFmqKFn0,178
|
844
850
|
vellum/types/function_call_chat_message_content_value_request.py,sha256=nVlQJdvM5mo4z52l8GodiPvoFydUv6X35s83pEvI7Nk,186
|
845
851
|
vellum/types/function_call_input.py,sha256=Ec31jaPDp9ljRe_XBSH0HwtxdJUUNkbK3kBscOhI6UY,157
|
852
|
+
vellum/types/function_call_prompt_block.py,sha256=n4gHkUbUsihmlxN-bt_4B-CUpFZjl7Ammusqv_LB648,164
|
846
853
|
vellum/types/function_call_request.py,sha256=Dz9jMUgEjX0Bhv-amoRLKR_oPlq_dcWcr0VFGA0Yi70,159
|
847
854
|
vellum/types/function_call_variable_value.py,sha256=61qbXVPjRivofXeKmdP-3dLhH1tkzKAorxBQlBft_-U,166
|
848
855
|
vellum/types/function_call_vellum_value.py,sha256=IEFGHcyjmksr0fbttwF8URV75jGRbs8WCpg5Kw-PEW4,164
|
@@ -867,6 +874,7 @@ vellum/types/hkunlp_instructor_xl_vectorizer.py,sha256=JRH8sgsDEfVUF9H-83eoirSU4
|
|
867
874
|
vellum/types/hkunlp_instructor_xl_vectorizer_request.py,sha256=zb2L8_LUSxtOQOWjr9tDU_mK2a_azmKO8DqNQi52EQM,177
|
868
875
|
vellum/types/image_chat_message_content.py,sha256=hNVlrv_xoUm1-euBK5DkZDInoMfL0eXb4Klx3juCWYU,164
|
869
876
|
vellum/types/image_chat_message_content_request.py,sha256=-_twjYRyGrsbc79xyd0vZ2xkt3Z4rsjJb2Ts0xRX-dY,172
|
877
|
+
vellum/types/image_prompt_block.py,sha256=K5eXoltiu3ifZqeLtNUTz6DUKu-aqnK0hUyWNvPGByg,156
|
870
878
|
vellum/types/image_variable_value.py,sha256=AqrNSw5yXLkQ3c3rsxhnQEenUoxyx_NXfiN26lwBNBg,158
|
871
879
|
vellum/types/image_vellum_value.py,sha256=aCrL399s9TeVKI5dvF7_qus43IgGYoy1erUqOk_iHB8,156
|
872
880
|
vellum/types/image_vellum_value_request.py,sha256=dEXmHRhRYDhWuUMHJ0VjwUc5RLVBCEeoW-QSBKc8LEg,164
|
@@ -1404,8 +1412,8 @@ vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528
|
|
1404
1412
|
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1405
1413
|
vellum/workflows/workflows/base.py,sha256=qdZYQq-jjdr0fYT0FCfmFuI5ypE3pANupgYcOqqML0o,18884
|
1406
1414
|
vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
|
1407
|
-
vellum_ai-0.12.
|
1408
|
-
vellum_ai-0.12.
|
1409
|
-
vellum_ai-0.12.
|
1410
|
-
vellum_ai-0.12.
|
1411
|
-
vellum_ai-0.12.
|
1415
|
+
vellum_ai-0.12.15.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1416
|
+
vellum_ai-0.12.15.dist-info/METADATA,sha256=vXfKfASRTSAbS23j4YTI7V_hDRYglGisCWULazWGJfo,5168
|
1417
|
+
vellum_ai-0.12.15.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
1418
|
+
vellum_ai-0.12.15.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1419
|
+
vellum_ai-0.12.15.dist-info/RECORD,,
|
vellum_cli/config.py
CHANGED
@@ -35,6 +35,8 @@ class WorkflowConfig(UniversalBaseModel):
|
|
35
35
|
workflow_sandbox_id: Optional[str] = None
|
36
36
|
ignore: Optional[Union[str, List[str]]] = None
|
37
37
|
deployments: List[WorkflowDeploymentConfig] = field(default_factory=list)
|
38
|
+
container_image_name: Optional[str] = None
|
39
|
+
container_image_tag: Optional[str] = None
|
38
40
|
|
39
41
|
def merge(self, other: "WorkflowConfig") -> "WorkflowConfig":
|
40
42
|
self_deployment_by_id = {
|
@@ -68,6 +70,8 @@ class WorkflowConfig(UniversalBaseModel):
|
|
68
70
|
workflow_sandbox_id=self.workflow_sandbox_id or other.workflow_sandbox_id,
|
69
71
|
ignore=self.ignore or other.ignore,
|
70
72
|
deployments=merged_deployments,
|
73
|
+
container_image_tag=self.container_image_tag or other.container_image_tag,
|
74
|
+
container_image_name=self.container_image_name or other.container_image_name,
|
71
75
|
)
|
72
76
|
|
73
77
|
|
vellum_cli/pull.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import io
|
2
|
+
import json
|
2
3
|
import os
|
3
4
|
from pathlib import Path
|
4
5
|
from uuid import UUID
|
@@ -14,6 +15,7 @@ from vellum_cli.config import VellumCliConfig, WorkflowConfig, load_vellum_cli_c
|
|
14
15
|
from vellum_cli.logger import load_cli_logger
|
15
16
|
|
16
17
|
ERROR_LOG_FILE_NAME = "error.log"
|
18
|
+
METADATA_FILE_NAME = "metadata.json"
|
17
19
|
|
18
20
|
|
19
21
|
def _is_valid_uuid(val: Union[str, UUID, None]) -> bool:
|
@@ -109,6 +111,7 @@ def pull_command(
|
|
109
111
|
logger.info(f"Pulling workflow into {workflow_config.module}")
|
110
112
|
client = create_vellum_client()
|
111
113
|
query_parameters = {}
|
114
|
+
|
112
115
|
if include_json:
|
113
116
|
query_parameters["include_json"] = include_json
|
114
117
|
if exclude_code:
|
@@ -128,6 +131,8 @@ def pull_command(
|
|
128
131
|
|
129
132
|
target_dir = os.path.join(os.getcwd(), *workflow_config.module.split("."))
|
130
133
|
error_content = ""
|
134
|
+
metadata_json: Optional[dict] = None
|
135
|
+
|
131
136
|
with zipfile.ZipFile(zip_buffer) as zip_file:
|
132
137
|
# Delete files in target_dir that aren't in the zip file
|
133
138
|
if os.path.exists(target_dir):
|
@@ -152,16 +157,26 @@ def pull_command(
|
|
152
157
|
os.remove(file_path)
|
153
158
|
|
154
159
|
for file_name in zip_file.namelist():
|
155
|
-
|
156
|
-
os.makedirs(os.path.dirname(target_file), exist_ok=True)
|
157
|
-
with zip_file.open(file_name) as source, open(target_file, "w") as target:
|
160
|
+
with zip_file.open(file_name) as source:
|
158
161
|
content = source.read().decode("utf-8")
|
159
162
|
if file_name == ERROR_LOG_FILE_NAME:
|
160
163
|
error_content = content
|
161
164
|
continue
|
165
|
+
if file_name == METADATA_FILE_NAME:
|
166
|
+
metadata_json = json.loads(content)
|
167
|
+
continue
|
162
168
|
|
163
|
-
|
164
|
-
|
169
|
+
target_file = os.path.join(target_dir, file_name)
|
170
|
+
os.makedirs(os.path.dirname(target_file), exist_ok=True)
|
171
|
+
with open(target_file, "w") as target:
|
172
|
+
logger.info(f"Writing to {target_file}...")
|
173
|
+
target.write(content)
|
174
|
+
|
175
|
+
if metadata_json:
|
176
|
+
workflow_config.container_image_name = metadata_json.get("runner_config", {}).get("container_image_name")
|
177
|
+
workflow_config.container_image_tag = metadata_json.get("runner_config", {}).get("container_image_tag")
|
178
|
+
if workflow_config.container_image_name and not workflow_config.container_image_tag:
|
179
|
+
workflow_config.container_image_tag = "latest"
|
165
180
|
|
166
181
|
if include_json:
|
167
182
|
logger.warning(
|
vellum_cli/push.py
CHANGED
@@ -51,8 +51,15 @@ def push_command(
|
|
51
51
|
workflow = BaseWorkflow.load_from_module(workflow_config.module)
|
52
52
|
workflow_display = get_workflow_display(base_display_class=VellumWorkflowDisplay, workflow_class=workflow)
|
53
53
|
exec_config = workflow_display.serialize()
|
54
|
+
|
55
|
+
container_tag = workflow_config.container_image_tag
|
56
|
+
if workflow_config.container_image_name and not workflow_config.container_image_tag:
|
57
|
+
container_tag = "latest"
|
58
|
+
|
54
59
|
exec_config["runner_config"] = {
|
55
60
|
"sdk_version": metadata.version("vellum-ai"),
|
61
|
+
"container_image_tag": container_tag,
|
62
|
+
"container_image_name": workflow_config.container_image_name,
|
56
63
|
}
|
57
64
|
|
58
65
|
label = snake_to_title_case(workflow_config.module.split(".")[-1])
|
vellum_cli/tests/test_pull.py
CHANGED
@@ -130,6 +130,8 @@ def test_pull__sandbox_id_with_no_config(vellum_client):
|
|
130
130
|
"workflow_sandbox_id": "87654321-0000-0000-0000-000000000000",
|
131
131
|
"ignore": None,
|
132
132
|
"deployments": [],
|
133
|
+
"container_image_tag": None,
|
134
|
+
"container_image_name": None,
|
133
135
|
}
|
134
136
|
],
|
135
137
|
}
|
@@ -204,6 +206,8 @@ def test_pull__workflow_deployment_with_no_config(vellum_client):
|
|
204
206
|
"workflow_sandbox_id": None,
|
205
207
|
"ignore": None,
|
206
208
|
"deployments": [],
|
209
|
+
"container_image_tag": None,
|
210
|
+
"container_image_name": None,
|
207
211
|
}
|
208
212
|
],
|
209
213
|
}
|
@@ -407,7 +411,17 @@ def test_pull__sandbox_id_with_other_workflow_deployment_in_lock(vellum_client,
|
|
407
411
|
new_workflow_sandbox_id = "87654321-0000-0000-0000-000000000000"
|
408
412
|
|
409
413
|
# AND the workflow pull API call returns a zip file
|
410
|
-
vellum_client.workflows.pull.return_value = iter(
|
414
|
+
vellum_client.workflows.pull.return_value = iter(
|
415
|
+
[
|
416
|
+
_zip_file_map(
|
417
|
+
{
|
418
|
+
"workflow.py": "print('hello')",
|
419
|
+
"metadata.json": '{"runner_config": { "container_image_name": "test", '
|
420
|
+
'"container_image_tag": "1.0" } }',
|
421
|
+
}
|
422
|
+
)
|
423
|
+
]
|
424
|
+
)
|
411
425
|
|
412
426
|
# WHEN the user runs the pull command with the new workflow sandbox id
|
413
427
|
runner = CliRunner()
|
@@ -433,12 +447,16 @@ def test_pull__sandbox_id_with_other_workflow_deployment_in_lock(vellum_client,
|
|
433
447
|
"release_tags": None,
|
434
448
|
},
|
435
449
|
],
|
450
|
+
"container_image_name": None,
|
451
|
+
"container_image_tag": None,
|
436
452
|
},
|
437
453
|
{
|
438
454
|
"module": "workflow_87654321",
|
439
455
|
"workflow_sandbox_id": new_workflow_sandbox_id,
|
440
456
|
"ignore": None,
|
441
457
|
"deployments": [],
|
458
|
+
"container_image_name": "test",
|
459
|
+
"container_image_tag": "1.0",
|
442
460
|
},
|
443
461
|
]
|
444
462
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
from .api_node import BaseAPINodeDisplay
|
2
|
+
from .base_node import BaseNodeDisplay
|
2
3
|
from .code_execution_node import BaseCodeExecutionNodeDisplay
|
3
4
|
from .conditional_node import BaseConditionalNodeDisplay
|
4
5
|
from .error_node import BaseErrorNodeDisplay
|
@@ -27,6 +28,7 @@ __all__ = [
|
|
27
28
|
"BaseInlineSubworkflowNodeDisplay",
|
28
29
|
"BaseMapNodeDisplay",
|
29
30
|
"BaseMergeNodeDisplay",
|
31
|
+
"BaseNodeDisplay",
|
30
32
|
"BaseNoteNodeDisplay",
|
31
33
|
"BasePromptDeploymentNodeDisplay",
|
32
34
|
"BaseSearchNodeDisplay",
|
@@ -0,0 +1,18 @@
|
|
1
|
+
from typing import Any, Generic, TypeVar
|
2
|
+
|
3
|
+
from vellum.workflows.nodes.bases.base import BaseNode
|
4
|
+
from vellum.workflows.types.core import JsonObject
|
5
|
+
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
6
|
+
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
7
|
+
|
8
|
+
_BaseNodeType = TypeVar("_BaseNodeType", bound=BaseNode)
|
9
|
+
|
10
|
+
|
11
|
+
class BaseNodeDisplay(BaseNodeVellumDisplay[_BaseNodeType], Generic[_BaseNodeType]):
|
12
|
+
def serialize(self, display_context: WorkflowDisplayContext, **kwargs: Any) -> JsonObject:
|
13
|
+
node_id = self.node_id
|
14
|
+
|
15
|
+
return {
|
16
|
+
"id": str(node_id),
|
17
|
+
"type": "GENERIC",
|
18
|
+
}
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import pytest
|
2
|
-
from unittest import mock
|
3
2
|
|
4
3
|
from deepdiff import DeepDiff
|
5
4
|
|
@@ -21,7 +20,6 @@ from vellum.workflows.expressions.less_than import LessThanExpression
|
|
21
20
|
from vellum.workflows.expressions.less_than_or_equal_to import LessThanOrEqualToExpression
|
22
21
|
from vellum.workflows.expressions.not_between import NotBetweenExpression
|
23
22
|
from vellum.workflows.expressions.not_in import NotInExpression
|
24
|
-
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
25
23
|
from vellum_ee.workflows.display.workflows import VellumWorkflowDisplay
|
26
24
|
from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
|
27
25
|
|
@@ -33,12 +31,7 @@ def test_serialize_workflow():
|
|
33
31
|
# GIVEN a Workflow that uses a ConditionalNode
|
34
32
|
# WHEN we serialize it
|
35
33
|
workflow_display = get_workflow_display(base_display_class=VellumWorkflowDisplay, workflow_class=CategoryWorkflow)
|
36
|
-
|
37
|
-
# TODO: Support serialization of BaseNode
|
38
|
-
# https://app.shortcut.com/vellum/story/4871/support-serialization-of-base-node
|
39
|
-
with mock.patch.object(BaseNodeVellumDisplay, "serialize") as mocked_serialize:
|
40
|
-
mocked_serialize.return_value = {"type": "MOCKED"}
|
41
|
-
serialized_workflow: dict = workflow_display.serialize()
|
34
|
+
serialized_workflow: dict = workflow_display.serialize()
|
42
35
|
|
43
36
|
# THEN we should get a serialized representation of the Workflow
|
44
37
|
assert serialized_workflow.keys() == {
|
@@ -457,23 +450,14 @@ def test_serialize_workflow():
|
|
457
450
|
|
458
451
|
assert not DeepDiff(
|
459
452
|
[
|
460
|
-
{
|
461
|
-
|
462
|
-
},
|
463
|
-
{
|
464
|
-
|
465
|
-
},
|
466
|
-
{
|
467
|
-
"type": "MOCKED",
|
468
|
-
},
|
469
|
-
{
|
470
|
-
"type": "MOCKED",
|
471
|
-
},
|
472
|
-
{
|
473
|
-
"type": "MOCKED",
|
474
|
-
},
|
453
|
+
{"id": "148c61bd-e8b0-4d4b-8734-b043a72b90ed", "type": "GENERIC"},
|
454
|
+
{"id": "ed7caf01-9ae7-47a3-b15a-16697abaf486", "type": "GENERIC"},
|
455
|
+
{"id": "0d959311-c836-4641-a867-58f63df9dfea", "type": "GENERIC"},
|
456
|
+
{"id": "8df781b1-ff28-48a5-98a2-d7d796b932b0", "type": "GENERIC"},
|
457
|
+
{"id": "68c02b7c-5077-4087-803d-841474a8081f", "type": "GENERIC"},
|
475
458
|
],
|
476
459
|
workflow_raw_data["nodes"][2:7],
|
460
|
+
ignore_order=True,
|
477
461
|
)
|
478
462
|
|
479
463
|
assert not DeepDiff(
|
@@ -917,12 +901,7 @@ def test_conditional_node_serialize_all_operators_with_lhs_and_rhs(descriptor, o
|
|
917
901
|
workflow_cls = create_simple_workflow(descriptor)
|
918
902
|
|
919
903
|
workflow_display = get_workflow_display(base_display_class=VellumWorkflowDisplay, workflow_class=workflow_cls)
|
920
|
-
|
921
|
-
# TODO: Support serialization of BaseNode
|
922
|
-
# https://app.shortcut.com/vellum/story/4871/support-serialization-of-base-node
|
923
|
-
with mock.patch.object(BaseNodeVellumDisplay, "serialize") as mocked_serialize:
|
924
|
-
mocked_serialize.return_value = {"type": "MOCKED"}
|
925
|
-
serialized_workflow: dict = workflow_display.serialize()
|
904
|
+
serialized_workflow: dict = workflow_display.serialize()
|
926
905
|
|
927
906
|
# THEN we should get a serialized representation of the Workflow
|
928
907
|
assert serialized_workflow.keys() == {
|
@@ -1041,12 +1020,7 @@ def test_conditional_node_serialize_all_operators_with_expression(descriptor, op
|
|
1041
1020
|
workflow_cls = create_simple_workflow(descriptor)
|
1042
1021
|
|
1043
1022
|
workflow_display = get_workflow_display(base_display_class=VellumWorkflowDisplay, workflow_class=workflow_cls)
|
1044
|
-
|
1045
|
-
# TODO: Support serialization of BaseNode
|
1046
|
-
# https://app.shortcut.com/vellum/story/4871/support-serialization-of-base-node
|
1047
|
-
with mock.patch.object(BaseNodeVellumDisplay, "serialize") as mocked_serialize:
|
1048
|
-
mocked_serialize.return_value = {"type": "MOCKED"}
|
1049
|
-
serialized_workflow: dict = workflow_display.serialize()
|
1023
|
+
serialized_workflow: dict = workflow_display.serialize()
|
1050
1024
|
|
1051
1025
|
# THEN we should get a serialized representation of the Workflow
|
1052
1026
|
assert serialized_workflow.keys() == {
|
@@ -1152,12 +1126,7 @@ def test_conditional_node_serialize_all_operators_with_value_and_start_and_end(d
|
|
1152
1126
|
workflow_cls = create_simple_workflow(descriptor)
|
1153
1127
|
|
1154
1128
|
workflow_display = get_workflow_display(base_display_class=VellumWorkflowDisplay, workflow_class=workflow_cls)
|
1155
|
-
|
1156
|
-
# TODO: Support serialization of BaseNode
|
1157
|
-
# https://app.shortcut.com/vellum/story/4871/support-serialization-of-base-node
|
1158
|
-
with mock.patch.object(BaseNodeVellumDisplay, "serialize") as mocked_serialize:
|
1159
|
-
mocked_serialize.return_value = {"type": "MOCKED"}
|
1160
|
-
serialized_workflow: dict = workflow_display.serialize()
|
1129
|
+
serialized_workflow: dict = workflow_display.serialize()
|
1161
1130
|
|
1162
1131
|
# THEN we should get a serialized representation of the Workflow
|
1163
1132
|
assert serialized_workflow.keys() == {
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
from unittest import mock
|
2
|
-
|
3
1
|
from deepdiff import DeepDiff
|
4
2
|
|
5
|
-
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
6
3
|
from vellum_ee.workflows.display.workflows import VellumWorkflowDisplay
|
7
4
|
from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
|
8
5
|
|
@@ -16,11 +13,7 @@ def test_serialize_workflow():
|
|
16
13
|
base_display_class=VellumWorkflowDisplay, workflow_class=BasicErrorNodeWorkflow
|
17
14
|
)
|
18
15
|
|
19
|
-
|
20
|
-
# https://app.shortcut.com/vellum/story/4871/support-serialization-of-base-node
|
21
|
-
with mock.patch.object(BaseNodeVellumDisplay, "serialize") as mocked_serialize:
|
22
|
-
mocked_serialize.return_value = {"type": "MOCKED"}
|
23
|
-
serialized_workflow: dict = workflow_display.serialize()
|
16
|
+
serialized_workflow: dict = workflow_display.serialize()
|
24
17
|
|
25
18
|
# THEN we should get a serialized representation of the Workflow
|
26
19
|
assert serialized_workflow.keys() == {
|
@@ -137,14 +130,11 @@ def test_serialize_workflow():
|
|
137
130
|
|
138
131
|
assert not DeepDiff(
|
139
132
|
[
|
140
|
-
{
|
141
|
-
|
142
|
-
},
|
143
|
-
{
|
144
|
-
"type": "MOCKED",
|
145
|
-
},
|
133
|
+
{"id": "1381c078-efa2-4255-89a1-7b4cb742c7fc", "type": "GENERIC"},
|
134
|
+
{"id": "1eee9b4e-531f-45f2-a4b9-42207fac2c33", "type": "GENERIC"},
|
146
135
|
],
|
147
136
|
mocked_base_nodes,
|
137
|
+
ignore_order=True,
|
148
138
|
)
|
149
139
|
|
150
140
|
terminal_node = workflow_raw_data["nodes"][-1]
|