vellum-ai 1.8.5__py3-none-any.whl → 1.8.6__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/__init__.py +6 -0
- vellum/client/core/client_wrapper.py +2 -2
- vellum/client/types/__init__.py +6 -0
- vellum/client/types/api_actor_type_enum.py +7 -0
- vellum/client/types/api_request_parent_context.py +6 -0
- vellum/client/types/external_parent_context.py +2 -0
- vellum/client/types/integration_trigger_context.py +38 -0
- vellum/client/types/node_execution_fulfilled_event.py +2 -0
- vellum/client/types/node_execution_initiated_event.py +2 -0
- vellum/client/types/node_execution_paused_event.py +2 -0
- vellum/client/types/node_execution_rejected_event.py +2 -0
- vellum/client/types/node_execution_resumed_event.py +2 -0
- vellum/client/types/node_execution_span.py +2 -0
- vellum/client/types/node_execution_streaming_event.py +2 -0
- vellum/client/types/node_parent_context.py +2 -0
- vellum/client/types/parent_context.py +4 -0
- vellum/client/types/prompt_deployment_parent_context.py +2 -0
- vellum/client/types/scheduled_trigger_context.py +38 -0
- vellum/client/types/slim_workflow_execution_read.py +2 -0
- vellum/client/types/span_link.py +2 -0
- vellum/client/types/workflow_deployment_event_executions_response.py +2 -0
- vellum/client/types/workflow_deployment_parent_context.py +2 -0
- vellum/client/types/workflow_event_execution_read.py +2 -0
- vellum/client/types/workflow_execution_detail.py +2 -0
- vellum/client/types/workflow_execution_fulfilled_event.py +2 -0
- vellum/client/types/workflow_execution_initiated_event.py +2 -0
- vellum/client/types/workflow_execution_paused_event.py +2 -0
- vellum/client/types/workflow_execution_rejected_event.py +2 -0
- vellum/client/types/workflow_execution_resumed_event.py +2 -0
- vellum/client/types/workflow_execution_snapshotted_event.py +2 -0
- vellum/client/types/workflow_execution_span.py +2 -0
- vellum/client/types/workflow_execution_streaming_event.py +2 -0
- vellum/client/types/workflow_parent_context.py +2 -0
- vellum/client/types/workflow_sandbox_parent_context.py +2 -0
- vellum/types/api_actor_type_enum.py +3 -0
- vellum/types/integration_trigger_context.py +3 -0
- vellum/types/scheduled_trigger_context.py +3 -0
- vellum/workflows/triggers/__init__.py +2 -1
- vellum/workflows/triggers/base.py +12 -4
- vellum/workflows/triggers/schedule.py +18 -0
- vellum/workflows/utils/uuids.py +1 -15
- {vellum_ai-1.8.5.dist-info → vellum_ai-1.8.6.dist-info}/METADATA +1 -1
- {vellum_ai-1.8.5.dist-info → vellum_ai-1.8.6.dist-info}/RECORD +51 -44
- vellum_ee/workflows/display/utils/expressions.py +2 -3
- vellum_ee/workflows/display/workflows/base_workflow_display.py +4 -4
- vellum_ee/workflows/server/virtual_file_loader.py +45 -1
- vellum_ee/workflows/tests/test_server.py +0 -64
- vellum_ee/workflows/tests/test_virtual_files.py +51 -0
- {vellum_ai-1.8.5.dist-info → vellum_ai-1.8.6.dist-info}/LICENSE +0 -0
- {vellum_ai-1.8.5.dist-info → vellum_ai-1.8.6.dist-info}/WHEEL +0 -0
- {vellum_ai-1.8.5.dist-info → vellum_ai-1.8.6.dist-info}/entry_points.txt +0 -0
|
@@ -80,3 +80,54 @@ def test_base_class_dynamic_import(files):
|
|
|
80
80
|
assert instance.id
|
|
81
81
|
except Exception as e:
|
|
82
82
|
pytest.fail(f"Failed to create an instance of BaseClass: {e}")
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def test_display_directory_not_auto_generated():
|
|
86
|
+
"""
|
|
87
|
+
Test that the top-level display directory is NOT auto-generated with empty __init__.py.
|
|
88
|
+
Display directories typically have specific __init__.py content (e.g., "from .workflow import *")
|
|
89
|
+
that should not be replaced with empty auto-generated files.
|
|
90
|
+
"""
|
|
91
|
+
# GIVEN a workflow with display/workflow.py but NO display/__init__.py
|
|
92
|
+
files = {
|
|
93
|
+
"__init__.py": "",
|
|
94
|
+
"workflow.py": """\
|
|
95
|
+
from vellum.workflows import BaseWorkflow
|
|
96
|
+
from vellum.workflows.nodes.bases import BaseNode
|
|
97
|
+
|
|
98
|
+
class StartNode(BaseNode):
|
|
99
|
+
pass
|
|
100
|
+
|
|
101
|
+
class Workflow(BaseWorkflow):
|
|
102
|
+
graph = StartNode
|
|
103
|
+
""",
|
|
104
|
+
"display/workflow.py": """\
|
|
105
|
+
from vellum_ee.workflows.display.workflows import BaseWorkflowDisplay
|
|
106
|
+
|
|
107
|
+
class WorkflowDisplay(BaseWorkflowDisplay):
|
|
108
|
+
pass
|
|
109
|
+
""",
|
|
110
|
+
# Note: NO "display/__init__.py" in files dict
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
namespace = str(uuid4())
|
|
114
|
+
|
|
115
|
+
# AND the virtual file loader is registered
|
|
116
|
+
sys.meta_path.append(VirtualFileFinder(files, namespace))
|
|
117
|
+
|
|
118
|
+
try:
|
|
119
|
+
# WHEN we try to resolve display/__init__.py
|
|
120
|
+
import importlib.util
|
|
121
|
+
|
|
122
|
+
spec = importlib.util.find_spec(f"{namespace}.display")
|
|
123
|
+
|
|
124
|
+
# THEN the spec should be None because we don't want to auto-generate display/__init__.py
|
|
125
|
+
# If the spec exists, it means an empty __init__.py was auto-generated (BAD)
|
|
126
|
+
assert spec is None, (
|
|
127
|
+
"display directory should NOT have auto-generated __init__.py. "
|
|
128
|
+
"Display directories require specific __init__.py content that shouldn't be empty."
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
finally:
|
|
132
|
+
# Clean up
|
|
133
|
+
sys.meta_path = [finder for finder in sys.meta_path if not isinstance(finder, VirtualFileFinder)]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|