mirror of
https://github.com/langgenius/dify.git
synced 2026-03-04 23:36:20 +08:00
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
"""
|
|
Factory for creating ReadyQueue instances from serialized state.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from .in_memory import InMemoryReadyQueue
|
|
from .protocol import ReadyQueueState
|
|
|
|
if TYPE_CHECKING:
|
|
from .protocol import ReadyQueue
|
|
|
|
|
|
def create_ready_queue_from_state(state: ReadyQueueState) -> ReadyQueue:
|
|
"""
|
|
Create a ReadyQueue instance from a serialized state.
|
|
|
|
Args:
|
|
state: The serialized queue state (Pydantic model, dict, or JSON string), or None for a new empty queue
|
|
|
|
Returns:
|
|
A ReadyQueue instance initialized with the given state
|
|
|
|
Raises:
|
|
ValueError: If the queue type is unknown or version is unsupported
|
|
"""
|
|
if state.type == "InMemoryReadyQueue":
|
|
if state.version != "1.0":
|
|
raise ValueError(f"Unsupported InMemoryReadyQueue version: {state.version}")
|
|
queue = InMemoryReadyQueue()
|
|
# Always pass as JSON string to loads()
|
|
queue.loads(state.model_dump_json())
|
|
return queue
|
|
else:
|
|
raise ValueError(f"Unknown ready queue type: {state.type}")
|