vellum-workflow-server 0.14.75__tar.gz → 0.14.75.post1__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-0.14.75 → vellum_workflow_server-0.14.75.post1}/PKG-INFO +1 -1
  2. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/pyproject.toml +1 -1
  3. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/api/workflow_view.py +14 -2
  4. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/README.md +0 -0
  5. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/__init__.py +0 -0
  6. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/api/__init__.py +0 -0
  7. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/api/auth_middleware.py +0 -0
  8. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/api/healthz_view.py +0 -0
  9. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/api/tests/__init__.py +0 -0
  10. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/api/tests/test_input_display_mapping.py +0 -0
  11. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/api/tests/test_workflow_view.py +0 -0
  12. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/api/tests/test_workflow_view_stream_workflow_route.py +0 -0
  13. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/code_exec_runner.py +0 -0
  14. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/config.py +0 -0
  15. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/core/__init__.py +0 -0
  16. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/core/cancel_workflow.py +0 -0
  17. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/core/events.py +0 -0
  18. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/core/executor.py +0 -0
  19. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/core/utils.py +0 -0
  20. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/core/workflow_executor_context.py +0 -0
  21. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/server.py +0 -0
  22. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/start.py +0 -0
  23. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/__init__.py +0 -0
  24. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/exit_handler.py +0 -0
  25. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/log_proxy.py +0 -0
  26. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/oom_killer.py +0 -0
  27. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/sentry.py +0 -0
  28. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/system_utils.py +0 -0
  29. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/tests/__init__.py +0 -0
  30. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/tests/test_sentry_integration.py +0 -0
  31. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/tests/test_system_utils.py +0 -0
  32. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/src/workflow_server/utils/tests/test_utils.py +0 -0
  33. {vellum_workflow_server-0.14.75 → vellum_workflow_server-0.14.75.post1}/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: 0.14.75
3
+ Version: 0.14.75.post1
4
4
  Summary:
5
5
  License: AGPL
6
6
  Requires-Python: >=3.9.0,<4
@@ -3,7 +3,7 @@ name = "vellum-workflow-server"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "vellum-workflow-server"
6
- version = "0.14.75"
6
+ version = "0.14.75.post1"
7
7
  description = ""
8
8
  readme = "README.md"
9
9
  authors = []
@@ -3,7 +3,7 @@ import importlib
3
3
  import inspect
4
4
  import json
5
5
  import logging
6
- from multiprocessing import Queue, set_start_method
6
+ from multiprocessing import Process, Queue, set_start_method
7
7
  import os
8
8
  import pkgutil
9
9
  from queue import Empty
@@ -11,7 +11,7 @@ import sys
11
11
  import time
12
12
  import traceback
13
13
  from uuid import uuid4
14
- from typing import Any, Dict, Generator, Iterator, Union, cast
14
+ from typing import Any, Dict, Generator, Iterator, Optional, Union, cast
15
15
 
16
16
  from flask import Blueprint, Response, current_app as app, request, stream_with_context
17
17
  from pydantic import ValidationError
@@ -108,6 +108,7 @@ def stream_workflow_route() -> Response:
108
108
  headers=headers,
109
109
  )
110
110
 
111
+ process: Optional[Process] = None
111
112
  try:
112
113
  process = stream_workflow_process_timeout(
113
114
  executor_context=context,
@@ -123,6 +124,11 @@ def stream_workflow_route() -> Response:
123
124
  first_item = process_output_queue.get(timeout=WORKFLOW_INITIATION_TIMEOUT_SECONDS)
124
125
  except Empty:
125
126
  logger.error("Request timed out trying to initiate the Workflow")
127
+
128
+ if process and process.is_alive():
129
+ process.kill()
130
+ increment_process_count(-1)
131
+
126
132
  return Response(
127
133
  json.dumps({"detail": "Request timed out trying to initiate the Workflow"}),
128
134
  status=408,
@@ -250,6 +256,12 @@ def stream_workflow_route() -> Response:
250
256
  # being exceeded.
251
257
  app.logger.error("Client disconnected in the middle of the Workflow Stream")
252
258
  return
259
+ except Exception as e:
260
+ logger.exception("Error during workflow response stream generator", extra={"error": e})
261
+ yield "\n"
262
+ yield "END"
263
+ yield "\n"
264
+ return
253
265
  finally:
254
266
  try:
255
267
  if process and process.is_alive():