workflow_base
¶
Classes¶
fastvideo.workflow.workflow_base.WorkflowBase
¶
WorkflowBase(fastvideo_args: FastVideoArgs)
Bases: ABC
Abstract base class for defining video processing workflows.
A workflow serves as the top-level orchestrator that coordinates multiple pipelines and components to accomplish a specific video processing task. The workflow pattern provides several key benefits:
-
Separation of Concerns: Workflows separate high-level orchestration logic from low-level processing implementations in pipelines.
-
Modularity: Different workflows can be created for different execution modes (preprocess, inference, etc.) while sharing common pipeline components.
-
Configuration Management: Workflows manage the configuration and initialization of multiple related pipelines and components in a centralized manner.
-
Environment Setup: Workflows handle system-level setup and resource allocation before pipeline execution begins.
-
Lifecycle Management: Workflows control the complete lifecycle from initialization through execution to cleanup.
The workflow acts as a factory and coordinator, creating the appropriate pipelines based on configuration, setting up the execution environment, and orchestrating the overall processing flow.
Initialize the workflow with configuration arguments.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fastvideo_args
|
FastVideoArgs
|
Configuration object containing all parameters needed for workflow and pipeline setup. |
required |
Source code in fastvideo/workflow/workflow_base.py
Functions¶
fastvideo.workflow.workflow_base.WorkflowBase.add_component
¶
Register a component instance with the workflow.
Components are auxiliary objects that may be shared across pipelines or used for workflow-level functionality (e.g., databases, caches, external services).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_name
|
str
|
Unique identifier for the component. |
required |
component
|
Any
|
The component instance to register. |
required |
Source code in fastvideo/workflow/workflow_base.py
fastvideo.workflow.workflow_base.WorkflowBase.add_pipeline_config
¶
add_pipeline_config(pipeline_name: str, pipeline_config: tuple[PipelineType, FastVideoArgs]) -> None
Register a pipeline configuration for later instantiation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pipeline_name
|
str
|
Unique identifier for the pipeline. |
required |
pipeline_config
|
tuple[PipelineType, FastVideoArgs]
|
Tuple containing the pipeline type and configuration arguments. |
required |
Source code in fastvideo/workflow/workflow_base.py
fastvideo.workflow.workflow_base.WorkflowBase.get_component
¶
fastvideo.workflow.workflow_base.WorkflowBase.get_workflow_cls
classmethod
¶
get_workflow_cls(fastvideo_args: FastVideoArgs) -> Optional[WorkflowBase]
Factory method to get the appropriate workflow class based on execution mode.
This method acts as a workflow factory, returning the appropriate workflow class implementation based on the specified execution mode in the configuration arguments.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fastvideo_args
|
FastVideoArgs
|
Configuration object containing the execution mode and other parameters. |
required |
Returns:
| Type | Description |
|---|---|
Optional[WorkflowBase]
|
The appropriate workflow class for the specified execution mode, |
Optional[WorkflowBase]
|
or None if no workflow is available for the given mode. |
Source code in fastvideo/workflow/workflow_base.py
fastvideo.workflow.workflow_base.WorkflowBase.load_pipelines
¶
Create and initialize all registered pipelines.
This method instantiates pipeline objects from their configurations and makes them available as both dictionary entries and instance attributes for convenient access.
Source code in fastvideo/workflow/workflow_base.py
fastvideo.workflow.workflow_base.WorkflowBase.prepare_system_environment
abstractmethod
¶
Prepare the system environment for workflow execution.
Subclasses must implement this method to handle any system-level setup required before pipeline execution (e.g., GPU initialization, temporary directories, resource allocation).
Source code in fastvideo/workflow/workflow_base.py
fastvideo.workflow.workflow_base.WorkflowBase.register_components
abstractmethod
¶
Register workflow-specific components.
Subclasses must implement this method to register any components needed for their specific workflow (e.g., databases, external APIs, shared resources).
Source code in fastvideo/workflow/workflow_base.py
fastvideo.workflow.workflow_base.WorkflowBase.register_pipelines
abstractmethod
¶
Register workflow-specific pipelines.
Subclasses must implement this method to define which pipelines are needed for their specific workflow and how they should be configured.
Source code in fastvideo/workflow/workflow_base.py
fastvideo.workflow.workflow_base.WorkflowBase.run
abstractmethod
¶
Execute the main workflow logic.
Subclasses must implement this method to define the specific execution flow for their workflow, coordinating the registered pipelines and components to accomplish the desired task.