vellum-workflow-server 1.7.1__tar.gz → 1.7.2__tar.gz

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.

Files changed (33) hide show
  1. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/PKG-INFO +2 -2
  2. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/pyproject.toml +2 -2
  3. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/api/workflow_view.py +7 -4
  4. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/core/executor.py +8 -27
  5. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/README.md +0 -0
  6. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/__init__.py +0 -0
  7. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/api/__init__.py +0 -0
  8. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/api/auth_middleware.py +0 -0
  9. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/api/healthz_view.py +0 -0
  10. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/api/tests/__init__.py +0 -0
  11. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/api/tests/test_input_display_mapping.py +0 -0
  12. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/api/tests/test_workflow_view.py +0 -0
  13. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/api/tests/test_workflow_view_stream_workflow_route.py +0 -0
  14. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/code_exec_runner.py +0 -0
  15. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/config.py +0 -0
  16. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/core/__init__.py +0 -0
  17. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/core/cancel_workflow.py +0 -0
  18. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/core/events.py +0 -0
  19. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/core/utils.py +0 -0
  20. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/core/workflow_executor_context.py +0 -0
  21. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/server.py +0 -0
  22. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/start.py +0 -0
  23. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/__init__.py +0 -0
  24. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/exit_handler.py +0 -0
  25. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/log_proxy.py +0 -0
  26. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/oom_killer.py +0 -0
  27. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/sentry.py +0 -0
  28. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/system_utils.py +0 -0
  29. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/tests/__init__.py +0 -0
  30. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/tests/test_sentry_integration.py +0 -0
  31. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/tests/test_system_utils.py +0 -0
  32. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/tests/test_utils.py +0 -0
  33. {vellum_workflow_server-1.7.1 → vellum_workflow_server-1.7.2}/src/workflow_server/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-workflow-server
3
- Version: 1.7.1
3
+ Version: 1.7.2
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.7.1)
32
+ Requires-Dist: vellum-ai (==1.7.2)
33
33
  Description-Content-Type: text/markdown
34
34
 
35
35
  # Vellum Workflow Runner Server
@@ -3,7 +3,7 @@ name = "vellum-workflow-server"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "vellum-workflow-server"
6
- version = "1.7.1"
6
+ version = "1.7.2"
7
7
  description = ""
8
8
  readme = "README.md"
9
9
  authors = []
@@ -45,7 +45,7 @@ flask = "2.3.3"
45
45
  orderly-set = "5.2.2"
46
46
  pebble = "5.0.7"
47
47
  gunicorn = "23.0.0"
48
- vellum-ai = "1.7.1"
48
+ vellum-ai = "1.7.2"
49
49
  python-dotenv = "1.0.1"
50
50
  retrying = "1.3.4"
51
51
  sentry-sdk = {extras = ["flask"], version = "2.20.0"}
@@ -7,8 +7,6 @@ from multiprocessing import Process, Queue, set_start_method
7
7
  import os
8
8
  import pkgutil
9
9
  from queue import Empty
10
- import random
11
- import string
12
10
  import sys
13
11
  from threading import Event as ThreadingEvent
14
12
  import time
@@ -35,7 +33,12 @@ from workflow_server.core.events import (
35
33
  VembdaExecutionInitiatedBody,
36
34
  VembdaExecutionInitiatedEvent,
37
35
  )
38
- from workflow_server.core.executor import stream_node_process_timeout, stream_workflow, stream_workflow_process_timeout
36
+ from workflow_server.core.executor import (
37
+ get_random_namespace,
38
+ stream_node_process_timeout,
39
+ stream_workflow,
40
+ stream_workflow_process_timeout,
41
+ )
39
42
  from workflow_server.core.utils import (
40
43
  create_vembda_rejected_event,
41
44
  is_events_emitting_enabled,
@@ -434,7 +437,7 @@ def serialize_route() -> Response:
434
437
  client = create_vellum_client(api_key=workspace_api_key)
435
438
 
436
439
  # Generate a unique namespace for this serialization request
437
- namespace = "".join(random.choice(string.ascii_letters + string.digits) for i in range(14))
440
+ namespace = get_random_namespace()
438
441
  virtual_finder = VirtualFileFinder(files, namespace)
439
442
  try:
440
443
  sys.meta_path.append(virtual_finder)
@@ -31,7 +31,6 @@ from vellum.workflows.nodes import BaseNode
31
31
  from vellum.workflows.nodes.mocks import MockNodeExecution
32
32
  from vellum.workflows.resolvers.base import BaseWorkflowResolver
33
33
  from vellum.workflows.resolvers.resolver import VellumResolver
34
- from vellum.workflows.state.base import BaseState, StateMeta
35
34
  from vellum.workflows.state.context import WorkflowContext
36
35
  from vellum.workflows.state.store import EmptyStore
37
36
  from vellum.workflows.workflows.event_filters import all_workflow_event_filter
@@ -400,9 +399,14 @@ def _get_file_namespace(executor_context: BaseExecutorContext) -> str:
400
399
  ):
401
400
  return LOCAL_WORKFLOW_MODULE
402
401
 
403
- return str(executor_context.execution_id) or "".join(
404
- random.choice(string.ascii_letters + string.digits) for i in range(14)
405
- )
402
+ if executor_context.execution_id:
403
+ return str(executor_context.execution_id)
404
+
405
+ return get_random_namespace()
406
+
407
+
408
+ def get_random_namespace() -> str:
409
+ return "workflow_tmp_" + "".join(random.choice(string.ascii_letters + string.digits) for i in range(14))
406
410
 
407
411
 
408
412
  def _dump_event(event: BaseEvent, executor_context: BaseExecutorContext) -> dict:
@@ -467,29 +471,6 @@ but found {inputs_module.Inputs.__class__.__name__}""",
467
471
  return inputs_module.Inputs(**executor_context.inputs)
468
472
 
469
473
 
470
- def _get_workflow_state(
471
- executor_context: BaseExecutorContext, workflow_inputs: Optional[BaseInputs]
472
- ) -> Optional[BaseState]:
473
- namespace = _get_file_namespace(executor_context)
474
- State = importlib.import_module(f"{namespace}.state").State if executor_context.files.get("state.py") else None
475
-
476
- if not State:
477
- return None
478
-
479
- if not issubclass(State, BaseState):
480
- return None
481
-
482
- if executor_context.state:
483
- return State(**executor_context.state)
484
-
485
- if workflow_inputs:
486
- return State(
487
- meta=StateMeta(workflow_inputs=workflow_inputs),
488
- )
489
-
490
- return State()
491
-
492
-
493
474
  def _get_run_from_node(executor_context: WorkflowExecutorContext, workflow: BaseWorkflow) -> Optional[Type[BaseNode]]:
494
475
  if not executor_context.node_id:
495
476
  return None