mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-22 05:32:12 -03:00
30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
"""Progress callback implementations backed by the shared WebSocket manager."""
|
|
|
|
from typing import Any, Dict, Protocol
|
|
|
|
from .model_file_service import ProgressCallback
|
|
from .websocket_manager import ws_manager
|
|
|
|
|
|
class ProgressReporter(Protocol):
|
|
"""Protocol representing an async progress callback."""
|
|
|
|
async def on_progress(self, progress_data: Dict[str, Any]) -> None:
|
|
"""Handle a progress update payload."""
|
|
|
|
|
|
class WebSocketProgressCallback(ProgressCallback):
|
|
"""WebSocket implementation of progress callback."""
|
|
|
|
async def on_progress(self, progress_data: Dict[str, Any]) -> None:
|
|
"""Send progress data via WebSocket."""
|
|
await ws_manager.broadcast_auto_organize_progress(progress_data)
|
|
|
|
|
|
class WebSocketBroadcastCallback:
|
|
"""Generic WebSocket progress callback broadcasting to all clients."""
|
|
|
|
async def on_progress(self, progress_data: Dict[str, Any]) -> None:
|
|
"""Send the provided payload to all connected clients."""
|
|
await ws_manager.broadcast(progress_data)
|