Files
mediaproc/core/jobs/registry.py
2026-03-26 05:23:37 -03:00

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()