Source code for sign_language_translator.vision._utils

from enum import Enum
from typing import Type, Union

from sign_language_translator.config.enums import SignFormats, normalize_short_code
from sign_language_translator.vision.sign.sign import Sign

__all__ = [
    "get_sign_wrapper_class",
]


[docs] def get_sign_wrapper_class(sign_code: Union[str, Enum]) -> Type[Sign]: """ Retrieves a Sign wrapping class based on the provided string code. Args: sign_code (str): The name of the Sign wrapper class. e.g. "video", "landmarks" etc. Returns: Type[Sign]: An instance of the Sign wrapper class corresponding to the provided code. Raises: ValueError: If no Sign wrapper class is known for the provided code. """ from sign_language_translator.vision.landmarks.landmarks import Landmarks from sign_language_translator.vision.video.video import Video code_to_class = { SignFormats.LANDMARKS.value: Landmarks, SignFormats.VIDEO.value: Video, } class_ = code_to_class.get(normalize_short_code(sign_code), None) if class_ is not None: return class_ # Unknown raise ValueError(f"no sign wrapper class known for '{sign_code = }'")