vellum-workflow-server 1.3.11__py3-none-any.whl → 1.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of vellum-workflow-server might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-workflow-server
3
- Version: 1.3.11
3
+ Version: 1.4.0
4
4
  Summary:
5
5
  License: AGPL
6
6
  Requires-Python: >=3.9.0,<4
@@ -29,7 +29,7 @@ Requires-Dist: pyjwt (==2.10.0)
29
29
  Requires-Dist: python-dotenv (==1.0.1)
30
30
  Requires-Dist: retrying (==1.3.4)
31
31
  Requires-Dist: sentry-sdk[flask] (==2.20.0)
32
- Requires-Dist: vellum-ai (==1.3.11)
32
+ Requires-Dist: vellum-ai (==1.4.0)
33
33
  Description-Content-Type: text/markdown
34
34
 
35
35
  # Vellum Workflow Runner Server
@@ -8,11 +8,11 @@ workflow_server/api/tests/test_workflow_view.py,sha256=RlAw1tHeIlnOXGrFQN-w3EOLP
8
8
  workflow_server/api/tests/test_workflow_view_stream_workflow_route.py,sha256=Qo8u6mPyRCmE2jamY1yIh8l44hgo4-Nwlq03z61ND5g,27031
9
9
  workflow_server/api/workflow_view.py,sha256=Ufc49WJ4LON3FFxzY2MeP4q7uQyorMNMu9zLRuJvdp4,21523
10
10
  workflow_server/code_exec_runner.py,sha256=lBnMIorPZL8zZBye6TjeCIs06WTJM7P2HR07B1fjJJI,2533
11
- workflow_server/config.py,sha256=DyTty8NrAwvtx-esM3KthnpsNh-nKdWNlovWQOgiGpg,1417
11
+ workflow_server/config.py,sha256=qmmTr6ty3ZN5LDOFs3TfUxYshYe6Mmn_LanplHHeE9Q,1796
12
12
  workflow_server/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  workflow_server/core/cancel_workflow.py,sha256=Ffkc3mzmrdMEUcD-sHfEhX4IwVrka-E--SxKA1dUfIU,2185
14
14
  workflow_server/core/events.py,sha256=24MA66DVQuaLJJcZrS8IL1Zq4Ohi9CoouKZ5VgoH3Cs,1402
15
- workflow_server/core/executor.py,sha256=ZEA18S4vCZbolupRyoyRCG8O4wkpfKtv8vmvklH0kj4,17678
15
+ workflow_server/core/executor.py,sha256=srpxx2xkjAE0QNBo1sfQV6Ovwyq3tWQdjicTySxSrpc,18092
16
16
  workflow_server/core/utils.py,sha256=aIpSINstLGslP2PIoDLM82_1GlJ1uC_0AIrP-V7Yobo,3230
17
17
  workflow_server/core/workflow_executor_context.py,sha256=w3OhV_AXpgh7AxpjEsc0vo-IJypgJcgr5DXJCqGptOU,1587
18
18
  workflow_server/server.py,sha256=QBU12AaAfAgLqfCDBd24qIJl_mbheiq0-hfcWV7rZM4,1234
@@ -28,7 +28,7 @@ workflow_server/utils/tests/test_sentry_integration.py,sha256=LGmWiaLhFrx-jslrRj
28
28
  workflow_server/utils/tests/test_system_utils.py,sha256=_4GwXvVvU5BrATxUEWwQIPg0bzQXMWBtiBmjP8MTxJM,4314
29
29
  workflow_server/utils/tests/test_utils.py,sha256=0Nq6du8o-iBtTrip9_wgHES53JSiJbVdSXaBnPobw3s,6930
30
30
  workflow_server/utils/utils.py,sha256=ZPoM1Suhid22dpB8oEFLux8wx-9iyzmSfWuYxSCrgWk,4774
31
- vellum_workflow_server-1.3.11.dist-info/METADATA,sha256=wnPS4p1OybwF8GbXPDa5SR-qKVRW-B2c0cCX9B8zN5s,2269
32
- vellum_workflow_server-1.3.11.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
33
- vellum_workflow_server-1.3.11.dist-info/entry_points.txt,sha256=uB_0yPkr7YV6RhEXzvFReUM8P4OQBlVXD6TN6eb9-oc,277
34
- vellum_workflow_server-1.3.11.dist-info/RECORD,,
31
+ vellum_workflow_server-1.4.0.dist-info/METADATA,sha256=Xj4ZNLbf9KnNGWKA5Hm9EFX8dCdhxc5BS5TthF5z3Us,2267
32
+ vellum_workflow_server-1.4.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
33
+ vellum_workflow_server-1.4.0.dist-info/entry_points.txt,sha256=uB_0yPkr7YV6RhEXzvFReUM8P4OQBlVXD6TN6eb9-oc,277
34
+ vellum_workflow_server-1.4.0.dist-info/RECORD,,
workflow_server/config.py CHANGED
@@ -30,6 +30,12 @@ VELLUM_API_URL_PORT = os.getenv("VELLUM_API_URL_PORT", 8000)
30
30
  CONCURRENCY = int(os.getenv("CONCURRENCY", "8"))
31
31
  ENABLE_PROCESS_WRAPPER = os.getenv("ENABLE_PROCESS_WRAPPER", "true").lower() == "true"
32
32
 
33
+ # This controls if we should just load a module already available in the py path for running
34
+ # a workflow. Currently used for running agent builder end to end locally
35
+ LOCAL_WORKFLOW_MODULE = os.getenv("LOCAL_WORKFLOW_MODULE")
36
+ # The deployment name to match against when using local mode so you can still run your normal workflow
37
+ LOCAL_DEPLOYMENT = os.getenv("LOCAL_DEPLOYMENT")
38
+
33
39
 
34
40
  def is_development() -> bool:
35
41
  return os.getenv("FLASK_ENV", "local") == "local"
@@ -36,6 +36,7 @@ from vellum.workflows.state.base import BaseState, StateMeta
36
36
  from vellum.workflows.state.context import WorkflowContext
37
37
  from vellum.workflows.state.store import EmptyStore
38
38
  from vellum.workflows.workflows.event_filters import all_workflow_event_filter
39
+ from workflow_server.config import LOCAL_DEPLOYMENT, LOCAL_WORKFLOW_MODULE
39
40
  from workflow_server.core.cancel_workflow import CancelWorkflowWatcherThread
40
41
  from workflow_server.core.events import (
41
42
  SPAN_ID_EVENT,
@@ -393,6 +394,13 @@ def _create_workflow_context(executor_context: BaseExecutorContext) -> WorkflowC
393
394
 
394
395
 
395
396
  def _get_file_namespace(executor_context: BaseExecutorContext) -> str:
397
+ if (
398
+ LOCAL_WORKFLOW_MODULE
399
+ and hasattr(executor_context.execution_context.parent_context, "deployment_name")
400
+ and LOCAL_DEPLOYMENT == executor_context.execution_context.parent_context.deployment_name # type: ignore
401
+ ):
402
+ return LOCAL_WORKFLOW_MODULE
403
+
396
404
  return str(executor_context.execution_id) or "".join(
397
405
  random.choice(string.ascii_letters + string.digits) for i in range(14)
398
406
  )
@@ -488,7 +496,8 @@ def _get_run_from_node(executor_context: WorkflowExecutorContext, workflow: Base
488
496
  def _gather_workflow(context: WorkflowExecutorContext) -> Tuple[BaseWorkflow, str]:
489
497
  try:
490
498
  namespace = _get_file_namespace(context)
491
- sys.meta_path.append(VirtualFileFinder(context.files, namespace))
499
+ if namespace != LOCAL_WORKFLOW_MODULE:
500
+ sys.meta_path.append(VirtualFileFinder(context.files, namespace))
492
501
  workflow = _create_workflow(
493
502
  executor_context=context,
494
503
  namespace=namespace,