36 lines
957 B
Python
36 lines
957 B
Python
"""
|
|
Handler registry — maps job_type strings to Handler classes.
|
|
"""
|
|
|
|
from typing import Dict, Type
|
|
|
|
from .handlers.base import Handler
|
|
|
|
_handlers: Dict[str, Type[Handler]] = {}
|
|
|
|
|
|
def register_handler(job_type: str, handler_class: Type[Handler]) -> None:
|
|
"""Register a handler class for a job type."""
|
|
_handlers[job_type] = handler_class
|
|
|
|
|
|
def get_handler(job_type: str) -> Handler:
|
|
"""Get an instantiated handler for a job type."""
|
|
if job_type not in _handlers:
|
|
raise ValueError(f"Unknown job type: {job_type}")
|
|
return _handlers[job_type]()
|
|
|
|
|
|
def _register_defaults() -> None:
|
|
"""Register built-in handlers."""
|
|
from .handlers.chunk import ChunkHandler
|
|
from .handlers.transcode import TranscodeHandler
|
|
from .handlers.detect import DetectHandler
|
|
|
|
register_handler("transcode", TranscodeHandler)
|
|
register_handler("chunk", ChunkHandler)
|
|
register_handler("detect", DetectHandler)
|
|
|
|
|
|
_register_defaults()
|