vellum-ai 1.7.3__py3-none-any.whl → 1.7.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vellum/client/core/client_wrapper.py +2 -2
- vellum/client/core/pydantic_utilities.py +8 -1
- vellum/plugins/pydantic.py +1 -0
- vellum/workflows/errors/types.py +3 -0
- vellum/workflows/events/tests/test_event.py +1 -0
- vellum/workflows/exceptions.py +9 -1
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +11 -1
- vellum/workflows/runner/runner.py +39 -3
- vellum/workflows/types/core.py +2 -1
- {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.4.dist-info}/METADATA +1 -1
- {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.4.dist-info}/RECORD +14 -14
- {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.4.dist-info}/LICENSE +0 -0
- {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.4.dist-info}/WHEEL +0 -0
- {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.4.dist-info}/entry_points.txt +0 -0
@@ -27,10 +27,10 @@ class BaseClientWrapper:
|
|
27
27
|
|
28
28
|
def get_headers(self) -> typing.Dict[str, str]:
|
29
29
|
headers: typing.Dict[str, str] = {
|
30
|
-
"User-Agent": "vellum-ai/1.7.
|
30
|
+
"User-Agent": "vellum-ai/1.7.4",
|
31
31
|
"X-Fern-Language": "Python",
|
32
32
|
"X-Fern-SDK-Name": "vellum-ai",
|
33
|
-
"X-Fern-SDK-Version": "1.7.
|
33
|
+
"X-Fern-SDK-Version": "1.7.4",
|
34
34
|
**(self.get_custom_headers() or {}),
|
35
35
|
}
|
36
36
|
if self._api_version is not None:
|
@@ -158,7 +158,14 @@ class UniversalBaseModel(pydantic.BaseModel):
|
|
158
158
|
|
159
159
|
dict_dump = super().dict(**kwargs_with_defaults_exclude_unset_include_fields)
|
160
160
|
|
161
|
-
|
161
|
+
# Skip expensive annotation metadata conversion for types that don't require it.
|
162
|
+
# This optimization dramatically improves serialization performance for large nested
|
163
|
+
# structures by avoiding repeated typing.get_origin checks on every element.
|
164
|
+
if self.__class__.__name__ in annotated_types:
|
165
|
+
return convert_and_respect_annotation_metadata(
|
166
|
+
object_=dict_dump, annotation=self.__class__, direction="write"
|
167
|
+
)
|
168
|
+
return dict_dump
|
162
169
|
|
163
170
|
|
164
171
|
def _union_list_of_pydantic_dicts(source: List[Any], destination: List[Any]) -> List[Any]:
|
vellum/plugins/pydantic.py
CHANGED
@@ -48,6 +48,7 @@ class OnValidatePython(ValidatePythonHandlerProtocol):
|
|
48
48
|
from_attributes: Optional[bool] = None,
|
49
49
|
context: Optional[Dict[str, Any]] = None,
|
50
50
|
self_instance: Optional[Any] = None,
|
51
|
+
extra: Optional[Literal["allow", "ignore", "forbid"]] = None,
|
51
52
|
allow_partial: Union[bool, Literal["off", "on", "trailing-strings"]] = False,
|
52
53
|
by_alias: Optional[bool] = None,
|
53
54
|
by_name: Optional[bool] = None,
|
vellum/workflows/errors/types.py
CHANGED
@@ -33,6 +33,7 @@ class WorkflowError:
|
|
33
33
|
message: str
|
34
34
|
code: WorkflowErrorCode
|
35
35
|
raw_data: Optional[Dict[str, Any]] = None
|
36
|
+
stacktrace: Optional[str] = None
|
36
37
|
|
37
38
|
def __contains__(self, item: Any) -> bool:
|
38
39
|
return item in self.message
|
@@ -82,6 +83,8 @@ def workflow_event_error_to_workflow_error(error: WorkflowEventError) -> Workflo
|
|
82
83
|
return WorkflowError(
|
83
84
|
message=error.message,
|
84
85
|
code=_WORKFLOW_EVENT_ERROR_CODE_TO_WORKFLOW_ERROR_CODE.get(error.code, WorkflowErrorCode.INTERNAL_ERROR),
|
86
|
+
raw_data=error.raw_data,
|
87
|
+
stacktrace=error.stacktrace,
|
85
88
|
)
|
86
89
|
|
87
90
|
|
vellum/workflows/exceptions.py
CHANGED
@@ -25,10 +25,12 @@ class NodeException(Exception):
|
|
25
25
|
message: str,
|
26
26
|
code: WorkflowErrorCode = WorkflowErrorCode.INTERNAL_ERROR,
|
27
27
|
raw_data: Optional[Dict[str, Any]] = None,
|
28
|
+
stacktrace: Optional[str] = None,
|
28
29
|
):
|
29
30
|
self.message = message
|
30
31
|
self.code = code
|
31
32
|
self.raw_data = raw_data
|
33
|
+
self.stacktrace = stacktrace
|
32
34
|
super().__init__(message)
|
33
35
|
|
34
36
|
@property
|
@@ -37,11 +39,17 @@ class NodeException(Exception):
|
|
37
39
|
message=self.message,
|
38
40
|
code=self.code,
|
39
41
|
raw_data=self.raw_data,
|
42
|
+
stacktrace=self.stacktrace,
|
40
43
|
)
|
41
44
|
|
42
45
|
@staticmethod
|
43
46
|
def of(workflow_error: WorkflowError) -> "NodeException":
|
44
|
-
return NodeException(
|
47
|
+
return NodeException(
|
48
|
+
message=workflow_error.message,
|
49
|
+
code=workflow_error.code,
|
50
|
+
raw_data=workflow_error.raw_data,
|
51
|
+
stacktrace=workflow_error.stacktrace,
|
52
|
+
)
|
45
53
|
|
46
54
|
|
47
55
|
class WorkflowInitializationException(Exception):
|
@@ -21,7 +21,7 @@ from vellum.workflows.errors import WorkflowErrorCode
|
|
21
21
|
from vellum.workflows.errors.types import workflow_event_error_to_workflow_error
|
22
22
|
from vellum.workflows.events.types import default_serializer
|
23
23
|
from vellum.workflows.events.workflow import is_workflow_event
|
24
|
-
from vellum.workflows.exceptions import NodeException
|
24
|
+
from vellum.workflows.exceptions import NodeException, WorkflowInitializationException
|
25
25
|
from vellum.workflows.inputs.base import BaseInputs
|
26
26
|
from vellum.workflows.nodes.bases.base import BaseNode
|
27
27
|
from vellum.workflows.outputs.base import BaseOutput
|
@@ -164,6 +164,16 @@ class SubworkflowDeploymentNode(BaseNode[StateType], Generic[StateType]):
|
|
164
164
|
node_output_mocks=self._context._get_all_node_output_mocks(),
|
165
165
|
)
|
166
166
|
|
167
|
+
try:
|
168
|
+
next(subworkflow_stream)
|
169
|
+
except WorkflowInitializationException as e:
|
170
|
+
hashed_module = e.definition.__module__
|
171
|
+
raise NodeException(
|
172
|
+
message=e.message,
|
173
|
+
code=e.code,
|
174
|
+
raw_data={"hashed_module": hashed_module},
|
175
|
+
) from e
|
176
|
+
|
167
177
|
outputs = None
|
168
178
|
exception = None
|
169
179
|
fulfilled_output_names: Set[str] = set()
|
@@ -1,4 +1,5 @@
|
|
1
1
|
from collections import defaultdict
|
2
|
+
from contextlib import contextmanager
|
2
3
|
from copy import deepcopy
|
3
4
|
from dataclasses import dataclass
|
4
5
|
import logging
|
@@ -232,7 +233,33 @@ class WorkflowRunner(Generic[StateType]):
|
|
232
233
|
|
233
234
|
self._background_thread: Optional[Thread] = None
|
234
235
|
self._cancel_thread: Optional[Thread] = None
|
235
|
-
|
236
|
+
|
237
|
+
@contextmanager
|
238
|
+
def _httpx_logger_with_span_id(self) -> Iterator[None]:
|
239
|
+
"""
|
240
|
+
Context manager to append the current execution's span ID to httpx logger messages.
|
241
|
+
|
242
|
+
This is used when making API requests via the Vellum client to include
|
243
|
+
the execution's span ID in the httpx request logs for better traceability.
|
244
|
+
"""
|
245
|
+
httpx_logger = logging.getLogger("httpx")
|
246
|
+
|
247
|
+
class SpanIdFilter(logging.Filter):
|
248
|
+
def filter(self, record: logging.LogRecord) -> bool:
|
249
|
+
if record.name == "httpx" and "[span_id=" not in record.msg:
|
250
|
+
context = get_execution_context()
|
251
|
+
if context.parent_context:
|
252
|
+
span_id = str(context.parent_context.span_id)
|
253
|
+
record.msg = f"{record.msg} [span_id={span_id}]"
|
254
|
+
return True
|
255
|
+
|
256
|
+
span_filter = SpanIdFilter()
|
257
|
+
httpx_logger.addFilter(span_filter)
|
258
|
+
|
259
|
+
try:
|
260
|
+
yield
|
261
|
+
finally:
|
262
|
+
httpx_logger.removeFilter(span_filter)
|
236
263
|
|
237
264
|
def _snapshot_state(self, state: StateType, deltas: List[StateDelta]) -> StateType:
|
238
265
|
self._workflow_event_inner_queue.put(
|
@@ -707,6 +734,7 @@ class WorkflowRunner(Generic[StateType]):
|
|
707
734
|
error_message: The error message to include in the cancellation events
|
708
735
|
parent_context: The parent context for the cancellation events
|
709
736
|
"""
|
737
|
+
captured_stacktrace = "".join(traceback.format_stack())
|
710
738
|
for span_id, active_node in list(self._active_nodes_by_execution_id.items()):
|
711
739
|
rejection_event = NodeExecutionRejectedEvent(
|
712
740
|
trace_id=self._execution_context.trace_id,
|
@@ -717,6 +745,7 @@ class WorkflowRunner(Generic[StateType]):
|
|
717
745
|
code=WorkflowErrorCode.NODE_CANCELLED,
|
718
746
|
message=error_message,
|
719
747
|
),
|
748
|
+
stacktrace=captured_stacktrace,
|
720
749
|
),
|
721
750
|
parent=parent_context,
|
722
751
|
)
|
@@ -824,6 +853,11 @@ class WorkflowRunner(Generic[StateType]):
|
|
824
853
|
parent=self._execution_context.parent_context,
|
825
854
|
)
|
826
855
|
|
856
|
+
def _wrapped_stream(self) -> None:
|
857
|
+
"""Wrapper for _stream that adds httpx logger span ID context."""
|
858
|
+
with self._httpx_logger_with_span_id():
|
859
|
+
self._stream()
|
860
|
+
|
827
861
|
def _stream(self) -> None:
|
828
862
|
for edge in self.workflow.get_edges():
|
829
863
|
self._dependencies[edge.to_node].add(edge.from_port.node_class)
|
@@ -960,12 +994,14 @@ class WorkflowRunner(Generic[StateType]):
|
|
960
994
|
parent_context=parent_context,
|
961
995
|
)
|
962
996
|
|
997
|
+
captured_stacktrace = "".join(traceback.format_stack())
|
963
998
|
self._workflow_event_outer_queue.put(
|
964
999
|
self._reject_workflow_event(
|
965
1000
|
WorkflowError(
|
966
1001
|
code=WorkflowErrorCode.WORKFLOW_CANCELLED,
|
967
1002
|
message="Workflow run cancelled",
|
968
|
-
)
|
1003
|
+
),
|
1004
|
+
captured_stacktrace,
|
969
1005
|
)
|
970
1006
|
)
|
971
1007
|
return
|
@@ -1005,7 +1041,7 @@ class WorkflowRunner(Generic[StateType]):
|
|
1005
1041
|
|
1006
1042
|
# The extra level of indirection prevents the runner from waiting on the caller to consume the event stream
|
1007
1043
|
self._stream_thread = Thread(
|
1008
|
-
target=self.
|
1044
|
+
target=self._wrapped_stream,
|
1009
1045
|
name=f"{self.workflow.__class__.__name__}.stream_thread",
|
1010
1046
|
)
|
1011
1047
|
self._stream_thread.start()
|
vellum/workflows/types/core.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
from enum import Enum
|
2
|
+
from multiprocessing.synchronize import Event as MultiprocessingEvent
|
2
3
|
from threading import Event as ThreadingEvent
|
3
4
|
from typing import ( # type: ignore[attr-defined]
|
4
5
|
Any,
|
@@ -16,7 +17,7 @@ JsonArray = List["Json"]
|
|
16
17
|
JsonObject = Dict[str, "Json"]
|
17
18
|
Json = Union[None, bool, int, float, str, JsonArray, JsonObject]
|
18
19
|
|
19
|
-
CancelSignal = ThreadingEvent
|
20
|
+
CancelSignal = Union[ThreadingEvent, MultiprocessingEvent]
|
20
21
|
|
21
22
|
# Unions and Generics inherit from `_GenericAlias` instead of `type`
|
22
23
|
# In future versions of python, we'll see `_UnionGenericAlias`
|
@@ -160,14 +160,14 @@ vellum/client/README.md,sha256=flqu57ubZNTfpq60CdLtJC9gp4WEkyjb_n_eZ4OYf9w,6497
|
|
160
160
|
vellum/client/__init__.py,sha256=rMnKRqL5-356SBc-rfm56MkO87PuAi2mtcfBszcJU1M,74316
|
161
161
|
vellum/client/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
|
162
162
|
vellum/client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
|
163
|
-
vellum/client/core/client_wrapper.py,sha256=
|
163
|
+
vellum/client/core/client_wrapper.py,sha256=l3m9Q8u_-eKF93ekwPZtf7Z2S1yy8YrttUS-JF-zwc8,2840
|
164
164
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
165
165
|
vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
|
166
166
|
vellum/client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
|
167
167
|
vellum/client/core/http_client.py,sha256=QurkBvCZZz2Z1d8znp4M2YbOXebBUPcPXRhPIS84Wvk,21214
|
168
168
|
vellum/client/core/http_response.py,sha256=4uOAtXXFTyFXHLXeQWSfQST9PGcOCRAdHVgGTxdyg84,1334
|
169
169
|
vellum/client/core/jsonable_encoder.py,sha256=hGgcEEeX11sqxxsll7h15pO3pTNVxk_n79Kcn0laoWA,3655
|
170
|
-
vellum/client/core/pydantic_utilities.py,sha256=
|
170
|
+
vellum/client/core/pydantic_utilities.py,sha256=y9CLy3XanCrFf-pJL11IieMQ9ntPIJG45xnFjTLfVUs,11784
|
171
171
|
vellum/client/core/query_encoder.py,sha256=ekulqNd0j8TgD7ox-Qbz7liqX8-KP9blvT9DsRCenYM,2144
|
172
172
|
vellum/client/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd864mS6vQZw,342
|
173
173
|
vellum/client/core/request_options.py,sha256=h0QUNCFVdCW_7GclVySCAY2w4NhtXVBUCmHgmzaxpcg,1681
|
@@ -988,7 +988,7 @@ vellum/evaluations/utils/env.py,sha256=Xj_nxsoU5ox06EOTjRopR4lrigQI6Le6qbWGltYoE
|
|
988
988
|
vellum/evaluations/utils/exceptions.py,sha256=dXMAkzqbHV_AP5FjjbegPlfUE0zQDlpA3qOsoOJUxfg,49
|
989
989
|
vellum/evaluations/utils/paginator.py,sha256=rEED_BJAXAM6tM1yMwHePNzszjq_tTq4NbQvi1jWQ_Q,697
|
990
990
|
vellum/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
991
|
-
vellum/plugins/pydantic.py,sha256
|
991
|
+
vellum/plugins/pydantic.py,sha256=-AV02TCdI3Uk4cgB2jO-YhQcRqvylb3g-h1ytKaRwvg,3981
|
992
992
|
vellum/plugins/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
993
993
|
vellum/plugins/tests/test_pydantic.py,sha256=S6bLqs3Y5DGA012QV_7f6hk4e6Bz-iJ9py9DEKuo4fM,746
|
994
994
|
vellum/plugins/utils.py,sha256=cPmxE9R2CK1bki2jKE8rB-G9zMf2pzHjSPDHFPXwd3Q,878
|
@@ -1804,7 +1804,7 @@ vellum/workflows/emitters/vellum_emitter.py,sha256=t4ixrN0NNXrydMP9PVKYvcOMxoMqs
|
|
1804
1804
|
vellum/workflows/environment/__init__.py,sha256=TJz0m9dwIs6YOwCTeuN0HHsU-ecyjc1OJXx4AFy83EQ,121
|
1805
1805
|
vellum/workflows/environment/environment.py,sha256=Ck3RPKXJvtMGx_toqYQQQF-ZwXm5ijVwJpEPTeIJ4_Q,471
|
1806
1806
|
vellum/workflows/errors/__init__.py,sha256=tWGPu5xyAU8gRb8_bl0fL7OfU3wxQ9UH6qVwy4X4P_Q,113
|
1807
|
-
vellum/workflows/errors/types.py,sha256=
|
1807
|
+
vellum/workflows/errors/types.py,sha256=N43BsnhnYZvuPql-Xu86Y6QQ07BxKv5ypD2lq4eugpk,4749
|
1808
1808
|
vellum/workflows/events/__init__.py,sha256=V4mh766fyA70WvHelm9kfVZGrUgEKcJ9tJt8EepfQYU,832
|
1809
1809
|
vellum/workflows/events/context.py,sha256=vCfMIPmz4j9Om36rRWa35A_JU_VccWWS52_mZkkqxak,3345
|
1810
1810
|
vellum/workflows/events/exception_handling.py,sha256=2okFtCzrOzaCP-HEwBPMvHn-evlyyE1zRkmIYjR__jQ,1975
|
@@ -1813,10 +1813,10 @@ vellum/workflows/events/relational_threads.py,sha256=zmLrBCBYpdpQV0snKH3HleST-_h
|
|
1813
1813
|
vellum/workflows/events/stream.py,sha256=xhXJTZirFi0xad5neAQNogrIQ4h47fpnKbVC3vCM5Js,889
|
1814
1814
|
vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1815
1815
|
vellum/workflows/events/tests/test_basic_workflow.py,sha256=Pj6orHsXz37jWC5FARi0Sx2Gjf99Owri2Cvr6Chb79k,1765
|
1816
|
-
vellum/workflows/events/tests/test_event.py,sha256=
|
1816
|
+
vellum/workflows/events/tests/test_event.py,sha256=rwbS8W1wriN6EDt_NlFA1HgSAqgBbEyCU63gfjCowrM,19736
|
1817
1817
|
vellum/workflows/events/types.py,sha256=mVrqAH9Hs9SpXm08Hcxdyap_ImQPwGsxRr56rSNMP34,5043
|
1818
1818
|
vellum/workflows/events/workflow.py,sha256=kLSWFXiDZH0TELWoDjQ_kHVomFnw8MVVUPDGIzgyosw,8997
|
1819
|
-
vellum/workflows/exceptions.py,sha256=
|
1819
|
+
vellum/workflows/exceptions.py,sha256=cizNaHgmGdIoYSV3Mn6_HlpUvs2Nq9KgpX1ewMZdBa0,2157
|
1820
1820
|
vellum/workflows/executable.py,sha256=um-gLJMVYfGJwGJfZIPlCRHhHIYm6pn8PUEfeqrNx5k,218
|
1821
1821
|
vellum/workflows/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1822
1822
|
vellum/workflows/expressions/accessor.py,sha256=3lu1-_-dBfZdJvtX-q66jbmRAZtqIfdsh_3_JNuzg1E,4462
|
@@ -1966,7 +1966,7 @@ vellum/workflows/nodes/displayable/search_node/node.py,sha256=1dGCB1kb7MvX3fUJ5z
|
|
1966
1966
|
vellum/workflows/nodes/displayable/search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1967
1967
|
vellum/workflows/nodes/displayable/search_node/tests/test_node.py,sha256=WVZR3BI_CvxBG9hulv0-tcAc_gW5ozs0nH4uVNRJa2U,8863
|
1968
1968
|
vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
|
1969
|
-
vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=
|
1969
|
+
vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=SZIdk7aBmKKFgPYsxZaHIjT6p5W9HBYT1lj5yE4oax8,14169
|
1970
1970
|
vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1971
1971
|
vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/test_node.py,sha256=c98nMPogZ6iN_pTvVUMTB3J72Hj--H-XVgvvRXhdSQE,19085
|
1972
1972
|
vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -2021,7 +2021,7 @@ vellum/workflows/resolvers/resolver.py,sha256=3uEYscB_2PHTazc0Y9SzOe_yiQZhVLfey1
|
|
2021
2021
|
vellum/workflows/resolvers/tests/test_resolver.py,sha256=PnUGzsulo1It_LjjhHsRNiILvvl5G_IaK8ZX56zKC28,6204
|
2022
2022
|
vellum/workflows/resolvers/types.py,sha256=Hndhlk69g6EKLh_LYg5ILepW5U_h_BYNllfzhS9k8p4,237
|
2023
2023
|
vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
|
2024
|
-
vellum/workflows/runner/runner.py,sha256=
|
2024
|
+
vellum/workflows/runner/runner.py,sha256=pmqz7zP_YYv7e4kU2WviqHo37SETNyp1FWPscmob8v4,45666
|
2025
2025
|
vellum/workflows/sandbox.py,sha256=mezSZmilR_fwR8164n8CEfzlMeQ55IqfapHp4ftImvQ,3212
|
2026
2026
|
vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
|
2027
2027
|
vellum/workflows/state/base.py,sha256=A8s0PC8UvFjPpkHDY6u-yIeb2KHjoAmu-GW-GYrDl0E,24654
|
@@ -2037,7 +2037,7 @@ vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVi
|
|
2037
2037
|
vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
|
2038
2038
|
vellum/workflows/types/__init__.py,sha256=fZ3Xxly7YSsu4kCIYD5aYpYucNM97zTyInb9CA24mf0,102
|
2039
2039
|
vellum/workflows/types/code_execution_node_wrappers.py,sha256=fewX9bqF_4TZuK-gZYIn12s31-k03vHMGRpvFAPm11Y,3206
|
2040
|
-
vellum/workflows/types/core.py,sha256=
|
2040
|
+
vellum/workflows/types/core.py,sha256=R7snCd7ci4tiRuHi5ALGh_5DIIF0T9eze3sf6EnJN-c,1126
|
2041
2041
|
vellum/workflows/types/definition.py,sha256=Qof2MAjSNB0AN2XkSKmk-owuY59YcxDVHYpno6-StPA,8058
|
2042
2042
|
vellum/workflows/types/generics.py,sha256=8jptbEx1fnJV0Lhj0MpCJOT6yNiEWeTOYOwrEAb5CRU,1576
|
2043
2043
|
vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunwMY,1314
|
@@ -2065,8 +2065,8 @@ vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnad
|
|
2065
2065
|
vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2066
2066
|
vellum/workflows/workflows/tests/test_base_workflow.py,sha256=Boa-_m9ii2Qsa1RvVM-VYniF7zCpzGgEGy-OnPZkrHg,23941
|
2067
2067
|
vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
|
2068
|
-
vellum_ai-1.7.
|
2069
|
-
vellum_ai-1.7.
|
2070
|
-
vellum_ai-1.7.
|
2071
|
-
vellum_ai-1.7.
|
2072
|
-
vellum_ai-1.7.
|
2068
|
+
vellum_ai-1.7.4.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
2069
|
+
vellum_ai-1.7.4.dist-info/METADATA,sha256=sc8YEMq91hq8swhNrwAMqtp-WdoC201YZ6iOf36PxI4,5547
|
2070
|
+
vellum_ai-1.7.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
2071
|
+
vellum_ai-1.7.4.dist-info/entry_points.txt,sha256=xVavzAKN4iF_NbmhWOlOkHluka0YLkbN_pFQ9pW3gLI,117
|
2072
|
+
vellum_ai-1.7.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|