vellum-ai 0.11.10__py3-none-any.whl → 0.12.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.
- vellum/client/core/client_wrapper.py +1 -1
- vellum/workflows/descriptors/base.py +2 -2
- vellum/workflows/descriptors/tests/test_utils.py +4 -4
- vellum/workflows/errors/__init__.py +3 -3
- vellum/workflows/errors/types.py +46 -3
- vellum/workflows/events/node.py +3 -3
- vellum/workflows/events/tests/test_event.py +3 -3
- vellum/workflows/events/workflow.py +3 -3
- vellum/workflows/exceptions.py +8 -4
- vellum/workflows/nodes/bases/base.py +9 -2
- vellum/workflows/nodes/bases/tests/test_base_node.py +13 -0
- vellum/workflows/nodes/core/error_node/node.py +9 -5
- vellum/workflows/nodes/core/inline_subworkflow_node/node.py +3 -13
- vellum/workflows/nodes/core/map_node/node.py +2 -2
- vellum/workflows/nodes/core/retry_node/node.py +5 -5
- vellum/workflows/nodes/core/retry_node/tests/test_node.py +6 -6
- vellum/workflows/nodes/core/templating_node/node.py +2 -2
- vellum/workflows/nodes/core/try_node/node.py +7 -7
- vellum/workflows/nodes/core/try_node/tests/test_node.py +9 -7
- vellum/workflows/nodes/displayable/bases/api_node/node.py +3 -3
- vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py +4 -12
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +2 -2
- vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py +2 -2
- vellum/workflows/nodes/displayable/bases/search_node.py +3 -3
- vellum/workflows/nodes/displayable/code_execution_node/node.py +6 -6
- vellum/workflows/nodes/displayable/guardrail_node/node.py +3 -3
- vellum/workflows/nodes/displayable/inline_prompt_node/node.py +3 -3
- vellum/workflows/nodes/displayable/prompt_deployment_node/node.py +3 -3
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +7 -14
- vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py +4 -4
- vellum/workflows/nodes/utils.py +5 -9
- vellum/workflows/references/external_input.py +2 -2
- vellum/workflows/references/node.py +2 -2
- vellum/workflows/references/state_value.py +2 -2
- vellum/workflows/references/workflow_input.py +2 -2
- vellum/workflows/runner/runner.py +15 -15
- {vellum_ee/workflows/display → vellum/workflows}/utils/tests/test_uuids.py +1 -1
- vellum/workflows/workflows/base.py +7 -7
- {vellum_ai-0.11.10.dist-info → vellum_ai-0.12.0.dist-info}/METADATA +1 -1
- {vellum_ai-0.11.10.dist-info → vellum_ai-0.12.0.dist-info}/RECORD +60 -61
- vellum_ee/workflows/display/nodes/base_node_display.py +50 -21
- vellum_ee/workflows/display/nodes/base_node_vellum_display.py +1 -1
- vellum_ee/workflows/display/nodes/get_node_display_class.py +10 -1
- vellum_ee/workflows/display/nodes/tests/test_base_node_display.py +5 -4
- vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +13 -6
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py +1 -1
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py +1 -1
- vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +1 -1
- vellum_ee/workflows/display/nodes/vellum/merge_node.py +4 -4
- vellum_ee/workflows/display/nodes/vellum/search_node.py +1 -1
- vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py +5 -1
- vellum_ee/workflows/display/nodes/vellum/try_node.py +12 -6
- vellum_ee/workflows/display/nodes/vellum/utils.py +1 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +269 -85
- vellum_ee/workflows/display/workflows/base_workflow_display.py +2 -2
- vellum_ee/workflows/display/workflows/vellum_workflow_display.py +1 -1
- vellum_ee/workflows/display/utils/tests/__init__.py +0 -0
- {vellum_ee/workflows/display → vellum/workflows}/utils/uuids.py +0 -0
- {vellum_ai-0.11.10.dist-info → vellum_ai-0.12.0.dist-info}/LICENSE +0 -0
- {vellum_ai-0.11.10.dist-info → vellum_ai-0.12.0.dist-info}/WHEEL +0 -0
- {vellum_ai-0.11.10.dist-info → vellum_ai-0.12.0.dist-info}/entry_points.txt +0 -0
@@ -19,38 +19,38 @@ vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
19
19
|
vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
20
|
vellum_ee/workflows/display/base.py,sha256=3ZFUYRNKL24fBqXhKpa_Dq2W1a-a86J20dmJYA3H2eY,1755
|
21
21
|
vellum_ee/workflows/display/nodes/__init__.py,sha256=5XOcZJXYUgaLS55QgRJzyQ_W1tpeprjnYAeYVezqoGw,160
|
22
|
-
vellum_ee/workflows/display/nodes/base_node_display.py,sha256=
|
23
|
-
vellum_ee/workflows/display/nodes/base_node_vellum_display.py,sha256=
|
24
|
-
vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=
|
22
|
+
vellum_ee/workflows/display/nodes/base_node_display.py,sha256=23PLqcpMe_mYkYdug9PDb6Br7o64Thx9-IhcviKGvGo,6662
|
23
|
+
vellum_ee/workflows/display/nodes/base_node_vellum_display.py,sha256=E7BFiDv7RdPt_CYhmlgc5ZoQo4JcSQKBGFsAQg0OaJ4,2113
|
24
|
+
vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=vyKeJAevAXvEAEtWeTEdBZXD3eJQYW_DEXLKVZ5KmYc,1325
|
25
25
|
vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
-
vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=
|
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
29
|
vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=nmPLj8vkbVCS46XQqmHq8Xj8Mr36wCK_vWf26A9KIkw,1505
|
30
30
|
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=4SSQGecKWHuoGy5YIGJeOZVHGKwTs_8Y-gf3GvsHb0M,8506
|
31
|
-
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=
|
32
|
-
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=
|
31
|
+
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=_sdLmmOa1ZqZQZXzw0GMoUpgnV1sdOfc_19LJCBS_Xc,4288
|
32
|
+
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=9JjtXTpyC14X5e1ntue2BcDif-jJA-wyDBd3hE6_gv4,13282
|
33
33
|
vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=ygTjSjYDI4DtkxADWub5rhBnRWItMKWF6fezBrgpOKA,1979
|
34
|
-
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=
|
34
|
+
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=t5iJQVoRT5g-v2IiUb4kFYdvUVKch0zn27016pzDZoo,2761
|
35
35
|
vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=3TJvHX_Uuf_gr94VkYc_zmNH8I5p71ChIeoAbJZ3ddY,2158
|
36
|
-
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=
|
36
|
+
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=aU_jZeV0CC3JkIo_LHSh7peLbJEqEaV4odrLPtqzRxI,7375
|
37
37
|
vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=x5wiuWbRjxNcPGu8BoBEKHwPeqCpHE-vrGjAdM5TJOs,4721
|
38
38
|
vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=AqUlItgSZij12qRKguKVmDbbaLuDy3Cdom5uOlJPqrc,3640
|
39
|
-
vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=
|
39
|
+
vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=jzO63B9KiEAncnBqmz2ZTcxjmEHozMEe7WnfpcpsQYg,3195
|
40
40
|
vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=9VpC3h0RYOxJuRbjDwidBYlLKakkmlEnDMBh2C7lHcY,1107
|
41
41
|
vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=gLRkizwyw21-Z12IyDbdOJpXayiZZd4HWd6qgZQg8sc,3106
|
42
|
-
vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=
|
42
|
+
vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=I4_ENFWEhHUDYFUWF67-EyToCwmJynAXcbNpqw6Cpio,8681
|
43
43
|
vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=zOp4voBSgB3MR1R93wTOrsiiara_hxEAYFupLl_SvTA,2657
|
44
44
|
vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=UNYxoE-89agE8ugK0aWg_uN61jPqlC2VSxWHk568sN4,3324
|
45
45
|
vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=
|
47
|
-
vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=
|
48
|
-
vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=
|
46
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=aJfQnIvlrRHVKgQid_gg6VQKkJyPgFnzbvWt9_t0Vz0,3860
|
47
|
+
vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=4k9DdjjCkZ_-4qynwg40IipT5Sq2WwgYFFE8WMnMdr0,2612
|
48
|
+
vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=3QsKS5Kht2Nod4A18T0bb4filK9AkyK5oImVlViK3l8,4643
|
49
49
|
vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
50
|
vellum_ee/workflows/display/tests/test_vellum_workflow_display.py,sha256=TEg3QbdE7rLbEhml9pMWmay--phsekGlfGVhTblxCGE,1727
|
51
51
|
vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
52
52
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=e__ae2yepB5vlgVT08sr1DDB8pYjax6VQLo5FtRk-nA,17934
|
53
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=
|
53
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=F822H2tM3Fvmc2PvunrVCRhtSKQLLpi5y2L1gyJKa78,31576
|
54
54
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=d6xWDvi-Uo1KcMHVj_e8TujKhTwMKXAlT8H3P2V0gQU,53693
|
55
55
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=MGwIwhCBCVYZmE_8Srts3fEs0BcRqXFFVbqiHiBQ55Q,6798
|
56
56
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=vA8cd7PJYhf949OUGeYP_moKtMogSyfHN2Z-qzNQLwM,8294
|
@@ -65,21 +65,18 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_ser
|
|
65
65
|
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=BGCgJ3WWiYK5fWJp_Yz-aWQPli5sIKOhLTVYfG9Tpq8,9177
|
66
66
|
vellum_ee/workflows/display/types.py,sha256=FSPg3TO8iNE2gnl1vn-nsMfit2V6yeBXW0Igh089A9w,2011
|
67
67
|
vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
|
-
vellum_ee/workflows/display/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
69
|
-
vellum_ee/workflows/display/utils/tests/test_uuids.py,sha256=ItjROhaPns8_mlvD17LIBwZKvhe2l0dXEd5oL-JiY64,448
|
70
|
-
vellum_ee/workflows/display/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
|
71
68
|
vellum_ee/workflows/display/utils/vellum.py,sha256=IlkKrfAAi4BV_HFnsdMFxNJC2-TrPM9ubVHv8ikmbSA,5110
|
72
69
|
vellum_ee/workflows/display/vellum.py,sha256=OSv0ZS50h1zJbunJ9TH7VEWFw-exXdK_ZsdzPxP9ROs,8814
|
73
70
|
vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
|
74
|
-
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=
|
71
|
+
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=ydAbFMzcY2LURINZbXYm9BAXZdIa3-7rQ86Kupo7qcA,12804
|
75
72
|
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=AMxNnTm2z3LIR5rqxoCAfuy37F2FTuSRDVtKUoezO8M,1184
|
76
|
-
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=
|
73
|
+
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=CvxUFudijGW4M7vapm_qrNG4X36PZxzFh6n6qBE9E1Y,17134
|
77
74
|
vellum/__init__.py,sha256=QmGeEPXeFxgkZa849KKK3wH3Y641wyt00Rytfay6KiM,35520
|
78
75
|
vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
|
79
76
|
vellum/client/__init__.py,sha256=o4m7iRZWEV8rP3GkdaztHAjNmjxjWERlarviFoHzuKI,110927
|
80
77
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
81
78
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
82
|
-
vellum/client/core/client_wrapper.py,sha256=
|
79
|
+
vellum/client/core/client_wrapper.py,sha256=7B5-HJvBvBhn2oOykuU54mjzw4eFMHzaowkShcRVK4c,1890
|
83
80
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
84
81
|
vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
85
82
|
vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
@@ -1206,8 +1203,8 @@ vellum/workflows/__init__.py,sha256=CssPsbNvN6rDhoLuqpEv7MMKGa51vE6dvAh6U31Pcio,
|
|
1206
1203
|
vellum/workflows/constants.py,sha256=Z0W4YlqfSlSgWC11PrVUPs6ZOBeIaQ78E_90J1hohiw,789
|
1207
1204
|
vellum/workflows/context.py,sha256=R8qdsFbD_0p7B6PWnyvSrZ_aOgMtGw-_uk0P0UAmwLA,1230
|
1208
1205
|
vellum/workflows/descriptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1209
|
-
vellum/workflows/descriptors/base.py,sha256=
|
1210
|
-
vellum/workflows/descriptors/tests/test_utils.py,sha256=
|
1206
|
+
vellum/workflows/descriptors/base.py,sha256=yLfr5qW5o7B2tLVvxEGeh-f6qiAQ735-9xrKOZ3HMc4,13830
|
1207
|
+
vellum/workflows/descriptors/tests/test_utils.py,sha256=Ct8ZRdK3TghVzuqv3a4pWk6p04szt5KOaizzk9LhY5Y,2849
|
1211
1208
|
vellum/workflows/descriptors/utils.py,sha256=lO_dbr5g3PXpHPtVBkdguAK4-1qayZ7RXjl3BgAhrMM,3795
|
1212
1209
|
vellum/workflows/edges/__init__.py,sha256=wSkmAnz9xyi4vZwtDbKxwlplt2skD7n3NsxkvR_pUus,50
|
1213
1210
|
vellum/workflows/edges/edge.py,sha256=N0SnY3gKVuxImPAdCbPMPlHJIXbkQ3fwq_LbJRvVMFc,677
|
@@ -1215,15 +1212,15 @@ vellum/workflows/emitters/__init__.py,sha256=YyOgaoLtVW8eFNEWODzCYb0HzL0PoSeNRf4
|
|
1215
1212
|
vellum/workflows/emitters/base.py,sha256=D5SADKIvnbgKwIBgYm77jaqvpo1o0rz4MmuX_muRqQU,359
|
1216
1213
|
vellum/workflows/environment/__init__.py,sha256=wGHslgSEZ7Octe4C-hNtl84EFelNimgmWQoi7px4-uw,71
|
1217
1214
|
vellum/workflows/environment/environment.py,sha256=IwcVSwA51jW1JTN_MAN22UbeAtZhiAVa_JRV4rmpAAs,219
|
1218
|
-
vellum/workflows/errors/__init__.py,sha256=
|
1219
|
-
vellum/workflows/errors/types.py,sha256=
|
1215
|
+
vellum/workflows/errors/__init__.py,sha256=tWGPu5xyAU8gRb8_bl0fL7OfU3wxQ9UH6qVwy4X4P_Q,113
|
1216
|
+
vellum/workflows/errors/types.py,sha256=mvywC2sXtpRrkDRfTx-O6aXAp0hOFyx27a1tqguKt4g,2493
|
1220
1217
|
vellum/workflows/events/__init__.py,sha256=6pxxceJo2dcaRkWtkDAYlUQZ-PHBQSZytIoyuUK48Qw,759
|
1221
|
-
vellum/workflows/events/node.py,sha256=
|
1218
|
+
vellum/workflows/events/node.py,sha256=QOikR6w5KXJUjnDNF2RhjXRbG7lJySetAoPamyr733Y,5264
|
1222
1219
|
vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1223
|
-
vellum/workflows/events/tests/test_event.py,sha256=
|
1220
|
+
vellum/workflows/events/tests/test_event.py,sha256=EFg34nGpl_LvbHWN5AuiMqH6PetwGF_z0TlETGsn_bU,12725
|
1224
1221
|
vellum/workflows/events/types.py,sha256=7sBSMNstsibqq93Klu4A-GInzo4IB23xWel595Uyi_Y,3077
|
1225
|
-
vellum/workflows/events/workflow.py,sha256=
|
1226
|
-
vellum/workflows/exceptions.py,sha256=
|
1222
|
+
vellum/workflows/events/workflow.py,sha256=LW1qjLYCa9mpZjxp6YuDDA0M-q0COBIfLuduP9pOfyo,5224
|
1223
|
+
vellum/workflows/exceptions.py,sha256=gXQvDL919cK3pwXc8BhLGKmR-YOskYDLvL1zPSSmLS4,579
|
1227
1224
|
vellum/workflows/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1228
1225
|
vellum/workflows/expressions/accessor.py,sha256=OFvAHAVABr-k7GceIhtzIurV4OuV_yHft7JPRsq87Es,1472
|
1229
1226
|
vellum/workflows/expressions/and_.py,sha256=I7lNqrUM3-m_5hmjjiMhaHhJtKcLj39kEFVWPDOqwfo,916
|
@@ -1260,49 +1257,49 @@ vellum/workflows/inputs/base.py,sha256=1kMgr0WqCYdWUqgFvgSoAMw2067FAlgwhGXLgbIOr
|
|
1260
1257
|
vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
|
1261
1258
|
vellum/workflows/nodes/__init__.py,sha256=aVdQVv7Y3Ro3JlqXGpxwaU2zrI06plDHD2aumH5WUIs,1157
|
1262
1259
|
vellum/workflows/nodes/bases/__init__.py,sha256=Ll1Ti6t3e_HKtGLsQTHAJevDmfo0QtfgPZUZ9FCRduI,140
|
1263
|
-
vellum/workflows/nodes/bases/base.py,sha256=
|
1260
|
+
vellum/workflows/nodes/bases/base.py,sha256=oqNO8rEeSu86wBuXQ8pGIOCZP7Bc_PdDL1etz_ef2A0,14271
|
1264
1261
|
vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py,sha256=0nkHQiFC4IpA1ZGx60XG0BLUWF6hwUpgqmS3ZrlFGhg,80
|
1265
1262
|
vellum/workflows/nodes/bases/base_subworkflow_node/node.py,sha256=vC0gUBQewAUNtP3i2G0-LUpE_kY-r_ijBD_tS1XkQ1E,383
|
1266
1263
|
vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1267
|
-
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=
|
1264
|
+
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=ghpLm_ljNBxWs43GlvIId47hOVwKU50XpvZxmlg6_8g,3439
|
1268
1265
|
vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT9JL18-mRR4,455
|
1269
1266
|
vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
|
1270
|
-
vellum/workflows/nodes/core/error_node/node.py,sha256=
|
1267
|
+
vellum/workflows/nodes/core/error_node/node.py,sha256=MFHU5vITYSK-L9CuMZ49In2ZeNLWnhZD0f8r5dWvb5Y,1270
|
1271
1268
|
vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
|
1272
|
-
vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=
|
1269
|
+
vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=vSlDEKwJsd2YazkWPRXPiNKZtbyhTBhfO3dJxcNiSWE,3059
|
1273
1270
|
vellum/workflows/nodes/core/map_node/__init__.py,sha256=MXpZYmGfhsMJHqqlpd64WiJRtbAtAMQz-_3fCU_cLV0,56
|
1274
|
-
vellum/workflows/nodes/core/map_node/node.py,sha256=
|
1271
|
+
vellum/workflows/nodes/core/map_node/node.py,sha256=vubEWObFh6rVUZ9GGHSi7H9b-Y-SHCwEgYkgdb3QTgM,7288
|
1275
1272
|
vellum/workflows/nodes/core/map_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1276
1273
|
vellum/workflows/nodes/core/map_node/tests/test_node.py,sha256=RHSZs7t6mW3UWvRrXnHZqaXVdRT2ZquOK_YHJ-gzXsU,1871
|
1277
1274
|
vellum/workflows/nodes/core/retry_node/__init__.py,sha256=lN2bIy5a3Uzhs_FYCrooADyYU6ZGShtvLKFWpelwPvo,60
|
1278
|
-
vellum/workflows/nodes/core/retry_node/node.py,sha256=
|
1275
|
+
vellum/workflows/nodes/core/retry_node/node.py,sha256=IjNcpzFmHyBUjOHEoULLbKf85B5Dva2XNR6jxPxZeoc,4223
|
1279
1276
|
vellum/workflows/nodes/core/retry_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1280
|
-
vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=
|
1277
|
+
vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=QXTnHwmJHISxXjvZMeuuEo0iVugVMJyaJoggI8yKXfI,3132
|
1281
1278
|
vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id69ozVFS6FKiuDsZTiA3I6MaL2U,70
|
1282
1279
|
vellum/workflows/nodes/core/templating_node/custom_filters.py,sha256=Q0DahYRHP4KfaUXDt9XxN-DFLBrAxlv90yaVqxScoUw,264
|
1283
1280
|
vellum/workflows/nodes/core/templating_node/exceptions.py,sha256=cDp140PP4OnInW4qAvg3KqiSiF70C71UyEAKRBR1Abo,46
|
1284
|
-
vellum/workflows/nodes/core/templating_node/node.py,sha256=
|
1281
|
+
vellum/workflows/nodes/core/templating_node/node.py,sha256=Q5U5lAW1nhGFJPc94Gxnq1s5RWrbOo7G_AY4n-ABmGg,4504
|
1285
1282
|
vellum/workflows/nodes/core/templating_node/render.py,sha256=OpJp0NAH6qcEL6K9lxR0qjpFb75TYNttJR5iCos8tmg,1792
|
1286
1283
|
vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=0BtXeSix7KGIuKzlPFTMLATpNnFPhut1UV_srGptkt0,1120
|
1287
1284
|
vellum/workflows/nodes/core/try_node/__init__.py,sha256=JVD4DrldTIqFQQFrubs9KtWCCc0YCAc7Fzol5ZWIWeM,56
|
1288
|
-
vellum/workflows/nodes/core/try_node/node.py,sha256=
|
1285
|
+
vellum/workflows/nodes/core/try_node/node.py,sha256=_xkpUNIfHXuwjivMBxdU5DegsNge2ITW5nBifWmBPTY,6670
|
1289
1286
|
vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1290
|
-
vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=
|
1287
|
+
vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=uqMU7ZPPHI6a-VoWnMSVwTHoRmqCk6w8wzaXogTV_J4,4093
|
1291
1288
|
vellum/workflows/nodes/displayable/__init__.py,sha256=6F_4DlSwvHuilWnIalp8iDjjDXl0Nmz4QzJV2PYe5RI,1023
|
1292
1289
|
vellum/workflows/nodes/displayable/api_node/__init__.py,sha256=MoxdQSnidIj1Nf_d-hTxlOxcZXaZnsWFDbE-PkTK24o,56
|
1293
1290
|
vellum/workflows/nodes/displayable/api_node/node.py,sha256=ehvJNkI-L_WLn8pszCaRkQuhRDgioCLaX6TT72KM_9E,2111
|
1294
1291
|
vellum/workflows/nodes/displayable/bases/__init__.py,sha256=0mWIx3qUrzllV7jqt7wN03vWGMuI1WrrLZeMLT2Cl2c,304
|
1295
1292
|
vellum/workflows/nodes/displayable/bases/api_node/__init__.py,sha256=1jwx4WC358CLA1jgzl_UD-rZmdMm2v9Mps39ndwCD7U,64
|
1296
|
-
vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=
|
1293
|
+
vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=x0RQVoG1yvokaPfGgf719qd0Lt5qxCvKFqyehYiGyqA,2481
|
1297
1294
|
vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
|
1298
|
-
vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=
|
1295
|
+
vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=EvylK1rGKpd4iiooEW9O5A9Q8DMTtBwETe_GtQT8M-E,2139
|
1299
1296
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
|
1300
1297
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py,sha256=fnjiRWLoRlC4Puo5oQcpZD5Hd-EesxsAo9l5tGAkpZQ,270
|
1301
|
-
vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=
|
1302
|
-
vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=
|
1303
|
-
vellum/workflows/nodes/displayable/bases/search_node.py,sha256=
|
1298
|
+
vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=mtnqcfpY5UYKCUm8HVL42juf5Q8MoJRg94V6CyEgZpQ,5398
|
1299
|
+
vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=zdpNJoawB5PedsCCfgOGDDoWuif0jNtlV-K9sFL6cNQ,4968
|
1300
|
+
vellum/workflows/nodes/displayable/bases/search_node.py,sha256=pqiui8G6l_9FLE1HH4rCdFC73Bl7_AIBAmQQMjqe190,3570
|
1304
1301
|
vellum/workflows/nodes/displayable/code_execution_node/__init__.py,sha256=0FLWMMktpzSnmBMizQglBpcPrP80fzVsoJwJgf822Cg,76
|
1305
|
-
vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=
|
1302
|
+
vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=JgyTgZRSb-gSXL4ccHn4VkPcPZFOkVK5ohPazPqSWFw,8652
|
1306
1303
|
vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1307
1304
|
vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1308
1305
|
vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py,sha256=5QsbmkzSlSbcbWTG_JmIqcP-JNJzOPTKxGzdHos19W4,79
|
@@ -1313,24 +1310,24 @@ vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=REFZdEVetXGyO
|
|
1313
1310
|
vellum/workflows/nodes/displayable/final_output_node/__init__.py,sha256=G7VXM4OWpubvSJtVkGmMNeqgb9GkM7qZT838eL18XU4,72
|
1314
1311
|
vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=iH3ZPOstPku_rg4h97Xz5FMaHWVRCjypaamAFzoJzJ0,1854
|
1315
1312
|
vellum/workflows/nodes/displayable/guardrail_node/__init__.py,sha256=Ab5eXmOoBhyV4dMWdzh32HLUmnPIBEK_zFCT38C4Fng,68
|
1316
|
-
vellum/workflows/nodes/displayable/guardrail_node/node.py,sha256=
|
1313
|
+
vellum/workflows/nodes/displayable/guardrail_node/node.py,sha256=7Ep7Ff7FtFry3Jwxhg_npF_-jT2P6TGKp5MRNnCZ8Tc,3923
|
1317
1314
|
vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py,sha256=gSUOoEZLlrx35-tQhSAd3An8WDwBqyiQh-sIebLU9wU,74
|
1318
|
-
vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=
|
1315
|
+
vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=dTnP1yH1P0NqMw3noxt9XwaDCpX8ZOhuvVYNAn_DdCQ,2119
|
1319
1316
|
vellum/workflows/nodes/displayable/merge_node/__init__.py,sha256=J8IC08dSH7P76wKlNuxe1sn7toNGtSQdFirUbtPDEs0,60
|
1320
1317
|
vellum/workflows/nodes/displayable/merge_node/node.py,sha256=ZyPvcTgfPOneOm5Dc2kUOoPkwNJqwRPZSj232akXynA,324
|
1321
1318
|
vellum/workflows/nodes/displayable/note_node/__init__.py,sha256=KWA3P4fyYJ-fOTky8qNGlcOotQ-HeHJ9AjZt6mRQmCE,58
|
1322
1319
|
vellum/workflows/nodes/displayable/note_node/node.py,sha256=8rwP7RS1OOyQJ-ZuZBXTCtT2ZW8J6eGD59iKmq_pB24,258
|
1323
1320
|
vellum/workflows/nodes/displayable/prompt_deployment_node/__init__.py,sha256=krX1Hds-TSVYZsx0wJFX4wsAKkEFYOX1ifwRGiIM-EA,82
|
1324
|
-
vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=
|
1321
|
+
vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=cpOrqQQanZ0xO4B4B3mgyBWKcnkT5b0DFxOSeS8otrI,2528
|
1325
1322
|
vellum/workflows/nodes/displayable/search_node/__init__.py,sha256=hpBpvbrDYf43DElRZFLzieSn8weXiwNiiNOJurERQbs,62
|
1326
1323
|
vellum/workflows/nodes/displayable/search_node/node.py,sha256=yhFWulbNmSQoDAwtTSGD4AtKmBbcykezRGRG16xga_0,1311
|
1327
1324
|
vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
|
1328
|
-
vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=
|
1325
|
+
vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=pnbRCgdzWXrXhm5jDkDDASl5xu5w3DxskC34yJVmWUs,7147
|
1329
1326
|
vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1330
|
-
vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=
|
1327
|
+
vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=lLnXKAUYtgvQ6MpT4GoTrqLtdlyDlUt1pPHrmu-Gf00,4705
|
1331
1328
|
vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=4CMwDtXwTaEvFfDpA6j2iLqc7S6IICSkvVZOobEpeps,6954
|
1332
1329
|
vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=KqKJtJ0vuNoPuUPMdILmBTt4a2fBBxxun-nmOI7T8jo,2585
|
1333
|
-
vellum/workflows/nodes/utils.py,sha256=
|
1330
|
+
vellum/workflows/nodes/utils.py,sha256=RWQbcc6MgxHNwFjtasY4hzIH8pKe0E3zfVt6eJKGTp4,587
|
1334
1331
|
vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
|
1335
1332
|
vellum/workflows/outputs/base.py,sha256=a7W6rNSDSawwGAXYjNTF2iHb9lnZu7WFSOagZIyy__k,7976
|
1336
1333
|
vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
|
@@ -1340,18 +1337,18 @@ vellum/workflows/ports/utils.py,sha256=pEjVNJKw9LhD_cFN-o0MWBOW2ejno7jv26qqzjLxw
|
|
1340
1337
|
vellum/workflows/references/__init__.py,sha256=glHFC1VfXmcbNvH5VzFbkT03d8_D7MMcvEcsUBrzLIs,591
|
1341
1338
|
vellum/workflows/references/environment_variable.py,sha256=7FFtiKfc4eyVkkfUbhc666OBNDqvFlMoNQEYmGpEVVE,661
|
1342
1339
|
vellum/workflows/references/execution_count.py,sha256=JILHqt8ELdc9ct-WsVCA5X-rKiP1rmJODw-XTf4kpHI,722
|
1343
|
-
vellum/workflows/references/external_input.py,sha256=
|
1340
|
+
vellum/workflows/references/external_input.py,sha256=XHugauKYvAmsGoFnjgJh00FcXjSMIqBvRun_CZuJD64,1662
|
1344
1341
|
vellum/workflows/references/input.py,sha256=3INu-TLTi4dziWmva6LO3WvgDlPzsjayUx61cVvqLJA,325
|
1345
1342
|
vellum/workflows/references/lazy.py,sha256=SXwZUCTzUR-R2-uK0XHALtvp1x84l-QkNY-Ds6KynYA,1932
|
1346
|
-
vellum/workflows/references/node.py,sha256=
|
1343
|
+
vellum/workflows/references/node.py,sha256=LP854wDVs-9I_aZ7-nkbwXqL2H7W2_3LED2e9FixNS8,1418
|
1347
1344
|
vellum/workflows/references/output.py,sha256=6F4zIrGykDxBsR6qEXxEKncQV5zV4yHafnHRNkxvklc,2780
|
1348
|
-
vellum/workflows/references/state_value.py,sha256=
|
1345
|
+
vellum/workflows/references/state_value.py,sha256=bInUF0A3Pt4-zhA0f6LdSuyv8tz7n5QRkHAEn4gsmqI,711
|
1349
1346
|
vellum/workflows/references/vellum_secret.py,sha256=Od4d19a5yletWMqNfJR5d_mZQUkVcFzj29mE-T9J7yE,480
|
1350
|
-
vellum/workflows/references/workflow_input.py,sha256=
|
1347
|
+
vellum/workflows/references/workflow_input.py,sha256=86IuhlBz-9cGxeUzizyjdp482ajcl7h8MnX1soNFMII,1415
|
1351
1348
|
vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
|
1352
1349
|
vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
|
1353
1350
|
vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
|
1354
|
-
vellum/workflows/runner/runner.py,sha256=
|
1351
|
+
vellum/workflows/runner/runner.py,sha256=RXnLEmSJFbp0u4vKF7rvD2fscuYfcRYkspIJINnvFAI,27607
|
1355
1352
|
vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
|
1356
1353
|
vellum/workflows/state/base.py,sha256=jpSzF1OQd3-fqi6dMGlNsQl-7JnJxCdzWIigmX8Wz-I,14425
|
1357
1354
|
vellum/workflows/state/context.py,sha256=oXiEdNsWJi1coRB85IreTgUeR6_CrWWBXndtLff9S7M,1272
|
@@ -1372,14 +1369,16 @@ vellum/workflows/utils/names.py,sha256=QLUqfJ1tmSEeUwBKTTiv_Qk3QGbInC2RSmlXfGXc8
|
|
1372
1369
|
vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1373
1370
|
vellum/workflows/utils/tests/test_functions.py,sha256=68OdrS1Gf3incmRd4g3a7-nylqQbJdQjl7AyfVUJg5I,5223
|
1374
1371
|
vellum/workflows/utils/tests/test_names.py,sha256=aOqpyvMsOEK_9mg_-yaNxQDW7QQfwqsYs37PseyLhxw,402
|
1372
|
+
vellum/workflows/utils/tests/test_uuids.py,sha256=i77ABQ0M3S-aFLzDXHJq_yr5FPkJEWCMBn1HJ3DObrE,437
|
1375
1373
|
vellum/workflows/utils/tests/test_vellum_variables.py,sha256=0ISy1xjY7_rci0Mt_naK0xrmurE1REZLMCgPOCLFKRM,776
|
1374
|
+
vellum/workflows/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
|
1376
1375
|
vellum/workflows/utils/vellum_variables.py,sha256=DsjVj_M_vTafpi5OUDs4KNrmbU2n4LR7fcLhuHb67Z4,3123
|
1377
1376
|
vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528t75s,683
|
1378
1377
|
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1379
|
-
vellum/workflows/workflows/base.py,sha256=
|
1378
|
+
vellum/workflows/workflows/base.py,sha256=jFu_AAyt4IqOrwanyflNnDhgYpX4oTVR5xnow8ynRhg,16811
|
1380
1379
|
vellum/workflows/workflows/event_filters.py,sha256=-uQcMB7IpPd-idMku8f2QNVhPXPFWo6FZLlGjRf8rCo,1996
|
1381
|
-
vellum_ai-0.
|
1382
|
-
vellum_ai-0.
|
1383
|
-
vellum_ai-0.
|
1384
|
-
vellum_ai-0.
|
1385
|
-
vellum_ai-0.
|
1380
|
+
vellum_ai-0.12.0.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1381
|
+
vellum_ai-0.12.0.dist-info/METADATA,sha256=G0NUeEg1fGbbdnprmeZoIMid6axw--aQsIRB6E2TyJs,5128
|
1382
|
+
vellum_ai-0.12.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
1383
|
+
vellum_ai-0.12.0.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1384
|
+
vellum_ai-0.12.0.dist-info/RECORD,,
|
@@ -1,18 +1,30 @@
|
|
1
1
|
from functools import cached_property
|
2
2
|
import inspect
|
3
3
|
from uuid import UUID
|
4
|
-
from typing import
|
4
|
+
from typing import (
|
5
|
+
TYPE_CHECKING,
|
6
|
+
Any,
|
7
|
+
Dict,
|
8
|
+
ForwardRef,
|
9
|
+
Generic,
|
10
|
+
Optional,
|
11
|
+
Tuple,
|
12
|
+
Type,
|
13
|
+
TypeVar,
|
14
|
+
cast,
|
15
|
+
get_args,
|
16
|
+
get_origin,
|
17
|
+
)
|
5
18
|
|
6
19
|
from vellum.workflows.nodes.bases.base import BaseNode
|
7
|
-
from vellum.workflows.nodes.utils import get_wrapped_node, has_wrapped_node
|
8
20
|
from vellum.workflows.ports import Port
|
9
21
|
from vellum.workflows.references import OutputReference
|
10
22
|
from vellum.workflows.types.core import JsonObject
|
11
23
|
from vellum.workflows.types.generics import NodeType
|
12
24
|
from vellum.workflows.types.utils import get_original_base
|
13
25
|
from vellum.workflows.utils.names import pascal_to_title_case
|
26
|
+
from vellum.workflows.utils.uuids import uuid4_from_hash
|
14
27
|
from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay, PortDisplayOverrides
|
15
|
-
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
16
28
|
from vellum_ee.workflows.display.vellum import CodeResourceDefinition, NodeDefinition
|
17
29
|
|
18
30
|
if TYPE_CHECKING:
|
@@ -21,16 +33,24 @@ if TYPE_CHECKING:
|
|
21
33
|
_NodeDisplayAttrType = TypeVar("_NodeDisplayAttrType")
|
22
34
|
|
23
35
|
|
24
|
-
class
|
36
|
+
class BaseNodeDisplayMeta(type):
|
37
|
+
def __new__(mcs, name: str, bases: Tuple[Type, ...], dct: Dict[str, Any]) -> Any:
|
38
|
+
cls = super().__new__(mcs, name, bases, dct)
|
39
|
+
if isinstance(dct.get("node_id"), UUID):
|
40
|
+
# Display classes are able to override the id of the node class it's parameterized by
|
41
|
+
base_node_display_class = cast(Type["BaseNodeDisplay"], cls)
|
42
|
+
node_class = base_node_display_class.infer_node_class()
|
43
|
+
node_class.__id__ = dct["node_id"]
|
44
|
+
return cls
|
45
|
+
|
46
|
+
|
47
|
+
class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
25
48
|
output_display: Dict[OutputReference, NodeOutputDisplay] = {}
|
26
49
|
port_displays: Dict[Port, PortDisplayOverrides] = {}
|
27
50
|
|
28
51
|
# Used to store the mapping between node types and their display classes
|
29
52
|
_node_display_registry: Dict[Type[NodeType], Type["BaseNodeDisplay"]] = {}
|
30
53
|
|
31
|
-
def __init__(self, node: Type[NodeType]):
|
32
|
-
self._node = node
|
33
|
-
|
34
54
|
def serialize(self, display_context: "WorkflowDisplayContext", **kwargs: Any) -> JsonObject:
|
35
55
|
raise NotImplementedError(f"Serialization for nodes of type {self._node.__name__} is not supported.")
|
36
56
|
|
@@ -71,6 +91,23 @@ class BaseNodeDisplay(Generic[NodeType]):
|
|
71
91
|
def get_from_node_display_registry(cls, node_class: Type[NodeType]) -> Type["BaseNodeDisplay"]:
|
72
92
|
return cls._node_display_registry[node_class]
|
73
93
|
|
94
|
+
@classmethod
|
95
|
+
def infer_node_class(cls) -> Type[NodeType]:
|
96
|
+
original_base = get_original_base(cls)
|
97
|
+
node_class = get_args(original_base)[0]
|
98
|
+
if isinstance(node_class, TypeVar):
|
99
|
+
bounded_class = node_class.__bound__
|
100
|
+
if inspect.isclass(bounded_class) and issubclass(bounded_class, BaseNode):
|
101
|
+
return cast(Type[NodeType], bounded_class)
|
102
|
+
|
103
|
+
if isinstance(bounded_class, ForwardRef) and bounded_class.__forward_arg__ == BaseNode.__name__:
|
104
|
+
return cast(Type[NodeType], BaseNode)
|
105
|
+
|
106
|
+
if issubclass(node_class, BaseNode):
|
107
|
+
return node_class
|
108
|
+
|
109
|
+
raise ValueError(f"Node {cls.__name__} must be a subclass of {BaseNode.__name__}")
|
110
|
+
|
74
111
|
@cached_property
|
75
112
|
def node_id(self) -> UUID:
|
76
113
|
"""Can be overridden as a class attribute to specify a custom node id."""
|
@@ -81,6 +118,10 @@ class BaseNodeDisplay(Generic[NodeType]):
|
|
81
118
|
"""Can be overridden as a class attribute to specify a custom label."""
|
82
119
|
return pascal_to_title_case(self._node.__name__)
|
83
120
|
|
121
|
+
@property
|
122
|
+
def _node(self) -> Type[NodeType]:
|
123
|
+
return self.infer_node_class()
|
124
|
+
|
84
125
|
@classmethod
|
85
126
|
def _get_explicit_node_display_attr(
|
86
127
|
cls,
|
@@ -124,17 +165,5 @@ class BaseNodeDisplay(Generic[NodeType]):
|
|
124
165
|
def __init_subclass__(cls, **kwargs: Any) -> None:
|
125
166
|
super().__init_subclass__(**kwargs)
|
126
167
|
|
127
|
-
|
128
|
-
node_class =
|
129
|
-
if isinstance(node_class, TypeVar):
|
130
|
-
bounded_class = node_class.__bound__
|
131
|
-
if inspect.isclass(bounded_class) and issubclass(bounded_class, BaseNode):
|
132
|
-
cls._node_display_registry[bounded_class] = cls
|
133
|
-
elif issubclass(node_class, BaseNode):
|
134
|
-
if has_wrapped_node(node_class):
|
135
|
-
wrapped_node = get_wrapped_node(node_class)
|
136
|
-
if wrapped_node._is_wrapped_node:
|
137
|
-
cls._node_display_registry[wrapped_node] = cls
|
138
|
-
return
|
139
|
-
|
140
|
-
cls._node_display_registry[node_class] = cls
|
168
|
+
node_class = cls.infer_node_class()
|
169
|
+
cls._node_display_registry[node_class] = cls
|
@@ -3,9 +3,9 @@ from typing import ClassVar, Dict, Optional
|
|
3
3
|
|
4
4
|
from vellum.workflows.ports import Port
|
5
5
|
from vellum.workflows.types.generics import NodeType
|
6
|
+
from vellum.workflows.utils.uuids import uuid4_from_hash
|
6
7
|
from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
|
7
8
|
from vellum_ee.workflows.display.nodes.types import PortDisplay
|
8
|
-
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
9
9
|
from vellum_ee.workflows.display.vellum import NodeDisplayData
|
10
10
|
|
11
11
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import types
|
1
2
|
from typing import Optional, Type
|
2
3
|
|
3
4
|
from vellum.workflows.types.generics import NodeType
|
@@ -11,9 +12,17 @@ def get_node_display_class(
|
|
11
12
|
node_display_class = base_class.get_from_node_display_registry(node_class)
|
12
13
|
except KeyError:
|
13
14
|
try:
|
14
|
-
|
15
|
+
base_node_display_class = get_node_display_class(
|
15
16
|
base_class, node_class.__bases__[0], node_class if root_node_class is None else root_node_class
|
16
17
|
)
|
18
|
+
|
19
|
+
# `base_node_display_class` is always a Generic class, so it's safe to index into it
|
20
|
+
NodeDisplayBaseClass = base_node_display_class[node_class] # type: ignore[index]
|
21
|
+
NodeDisplayClass = types.new_class(
|
22
|
+
f"{node_class.__name__}Display",
|
23
|
+
bases=(NodeDisplayBaseClass,),
|
24
|
+
)
|
25
|
+
return NodeDisplayClass
|
17
26
|
except IndexError:
|
18
27
|
return base_class
|
19
28
|
|
@@ -15,7 +15,7 @@ def node_with_implicit_properties():
|
|
15
15
|
|
16
16
|
expected_id = UUID("ace7f746-4fe6-45c7-8207-fc8a4d0c7f6f")
|
17
17
|
|
18
|
-
return
|
18
|
+
return MyNodeDisplay, expected_id
|
19
19
|
|
20
20
|
|
21
21
|
@pytest.fixture
|
@@ -28,7 +28,7 @@ def node_with_explicit_properties():
|
|
28
28
|
class MyNodeDisplay(BaseNodeDisplay[MyNode]):
|
29
29
|
node_id = explicit_id
|
30
30
|
|
31
|
-
return
|
31
|
+
return MyNodeDisplay, explicit_id
|
32
32
|
|
33
33
|
|
34
34
|
@pytest.fixture(
|
@@ -42,6 +42,7 @@ def node_info(request):
|
|
42
42
|
|
43
43
|
|
44
44
|
def test_get_id(node_info):
|
45
|
-
|
45
|
+
node_display, expected_id = node_info
|
46
46
|
|
47
|
-
assert node_display(
|
47
|
+
assert node_display().node_id == expected_id
|
48
|
+
assert node_display.infer_node_class().__id__ == expected_id
|
@@ -28,12 +28,19 @@ class BaseCodeExecutionNodeDisplay(BaseNodeVellumDisplay[_CodeExecutionNodeType]
|
|
28
28
|
) -> JsonObject:
|
29
29
|
node = self._node
|
30
30
|
node_id = self.node_id
|
31
|
+
raw_code = raise_if_descriptor(node.code)
|
32
|
+
code_value = None
|
33
|
+
|
34
|
+
if raw_code:
|
35
|
+
code_value = raw_code
|
36
|
+
else:
|
37
|
+
node_file_path = inspect.getfile(node)
|
38
|
+
file_code = read_file_from_path(
|
39
|
+
node_filepath=node_file_path,
|
40
|
+
script_filepath=(raise_if_descriptor(node.filepath)), # type: ignore
|
41
|
+
)
|
42
|
+
code_value = file_code
|
31
43
|
|
32
|
-
node_file_path = inspect.getfile(node)
|
33
|
-
code = read_file_from_path(
|
34
|
-
node_filepath=node_file_path,
|
35
|
-
script_filepath=(raise_if_descriptor(node.filepath)), # type: ignore
|
36
|
-
)
|
37
44
|
code_inputs = raise_if_descriptor(node.code_inputs)
|
38
45
|
|
39
46
|
inputs = [
|
@@ -50,7 +57,7 @@ class BaseCodeExecutionNodeDisplay(BaseNodeVellumDisplay[_CodeExecutionNodeType]
|
|
50
57
|
code_node_input = create_node_input(
|
51
58
|
node_id=node_id,
|
52
59
|
input_name="code",
|
53
|
-
value=
|
60
|
+
value=code_value,
|
54
61
|
display_context=display_context,
|
55
62
|
input_id=self.code_input_id,
|
56
63
|
)
|
@@ -25,10 +25,10 @@ from vellum.workflows.expressions.not_in import NotInExpression
|
|
25
25
|
from vellum.workflows.expressions.or_ import OrExpression
|
26
26
|
from vellum.workflows.nodes.displayable import ConditionalNode
|
27
27
|
from vellum.workflows.types.core import ConditionType, JsonObject
|
28
|
+
from vellum.workflows.utils.uuids import uuid4_from_hash
|
28
29
|
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
29
30
|
from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
|
30
31
|
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
31
|
-
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
32
32
|
from vellum_ee.workflows.display.vellum import NodeInput
|
33
33
|
|
34
34
|
_ConditionalNodeType = TypeVar("_ConditionalNodeType", bound=ConditionalNode)
|
@@ -3,11 +3,11 @@ from typing import Any, ClassVar, Generic, Optional, TypeVar
|
|
3
3
|
|
4
4
|
from vellum.workflows.nodes.displayable.final_output_node import FinalOutputNode
|
5
5
|
from vellum.workflows.types.core import JsonObject
|
6
|
+
from vellum.workflows.utils.uuids import uuid4_from_hash
|
6
7
|
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
7
8
|
from vellum_ee.workflows.display.nodes.utils import to_kebab_case
|
8
9
|
from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
|
9
10
|
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
10
|
-
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
11
11
|
from vellum_ee.workflows.display.utils.vellum import infer_vellum_variable_type
|
12
12
|
|
13
13
|
_FinalOutputNodeType = TypeVar("_FinalOutputNodeType", bound=FinalOutputNode)
|
@@ -5,11 +5,11 @@ from vellum import PromptBlock, RichTextChildBlock, VellumVariable
|
|
5
5
|
from vellum.workflows.nodes import InlinePromptNode
|
6
6
|
from vellum.workflows.references import OutputReference
|
7
7
|
from vellum.workflows.types.core import JsonObject
|
8
|
+
from vellum.workflows.utils.uuids import uuid4_from_hash
|
8
9
|
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
9
10
|
from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
|
10
11
|
from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
|
11
12
|
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
12
|
-
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
13
13
|
from vellum_ee.workflows.display.utils.vellum import infer_vellum_variable_type
|
14
14
|
from vellum_ee.workflows.display.vellum import NodeInput
|
15
15
|
|
@@ -1,11 +1,11 @@
|
|
1
1
|
from uuid import UUID
|
2
|
-
from typing import Any, ClassVar, Generic, List, Optional,
|
2
|
+
from typing import Any, ClassVar, Generic, List, Optional, TypeVar
|
3
3
|
|
4
4
|
from vellum.workflows.nodes.displayable import MergeNode
|
5
5
|
from vellum.workflows.types.core import JsonObject
|
6
|
+
from vellum.workflows.utils.uuids import uuid4_from_hash
|
6
7
|
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
7
8
|
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
8
|
-
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
9
9
|
from vellum_ee.workflows.display.vellum import EdgeVellumDisplay
|
10
10
|
|
11
11
|
_MergeNodeType = TypeVar("_MergeNodeType", bound=MergeNode)
|
@@ -14,8 +14,8 @@ _MergeNodeType = TypeVar("_MergeNodeType", bound=MergeNode)
|
|
14
14
|
class BaseMergeNodeDisplay(BaseNodeVellumDisplay[_MergeNodeType], Generic[_MergeNodeType]):
|
15
15
|
target_handle_ids: ClassVar[List[UUID]]
|
16
16
|
|
17
|
-
def __init__(self
|
18
|
-
super().__init__(
|
17
|
+
def __init__(self):
|
18
|
+
super().__init__()
|
19
19
|
self._target_handle_iterator = 0
|
20
20
|
|
21
21
|
def serialize(self, display_context: WorkflowDisplayContext, **kwargs: Any) -> JsonObject:
|
@@ -10,11 +10,11 @@ from vellum import (
|
|
10
10
|
from vellum.workflows.nodes.displayable.search_node import SearchNode
|
11
11
|
from vellum.workflows.references import OutputReference
|
12
12
|
from vellum.workflows.types.core import JsonArray, JsonObject
|
13
|
+
from vellum.workflows.utils.uuids import uuid4_from_hash
|
13
14
|
from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
|
14
15
|
from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
|
15
16
|
from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
|
16
17
|
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
17
|
-
from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
|
18
18
|
from vellum_ee.workflows.display.vellum import InputVariablePointer, NodeInput
|
19
19
|
|
20
20
|
_SearchNodeType = TypeVar("_SearchNodeType", bound=SearchNode)
|
@@ -37,6 +37,10 @@ class MyNodeA(BaseNode):
|
|
37
37
|
output: str
|
38
38
|
|
39
39
|
|
40
|
+
class MyNodeADisplay(BaseNodeVellumDisplay[MyNodeA]):
|
41
|
+
pass
|
42
|
+
|
43
|
+
|
40
44
|
class MyNodeB(BaseNode):
|
41
45
|
example = MyNodeA.Outputs.output
|
42
46
|
fallback_example = MyNodeA.Outputs.output.coalesce(Inputs.example_workflow_input).coalesce("fallback")
|
@@ -99,7 +103,7 @@ def test_create_node_input_value_pointer_rules(
|
|
99
103
|
),
|
100
104
|
},
|
101
105
|
node_displays={
|
102
|
-
MyNodeA:
|
106
|
+
MyNodeA: MyNodeADisplay(),
|
103
107
|
},
|
104
108
|
),
|
105
109
|
)
|