Shi Xian
2024-12-05 0efc87352ce7d3903dbdedbfa5d01ca5e1cb19e7
funasr/register.py
@@ -3,9 +3,11 @@
from dataclasses import dataclass
import re
@dataclass
class RegisterTables:
    """Registry system for classes."""
    model_classes = {}
    frontend_classes = {}
    specaug_classes = {}
@@ -46,6 +48,7 @@
    def register(self, register_tables_key: str, key: str = None) -> callable:
        """Decorator to register a class."""
        def decorator(target_class):
            if not hasattr(self, register_tables_key):
                setattr(self, register_tables_key, {})
@@ -55,7 +58,9 @@
            registry_key = key if key is not None else target_class.__name__
            if registry_key in registry:
                raise ValueError(f"Key {registry_key} already exists in {register_tables_key}")
                logging.warning(
                    f"Key {registry_key} already exists in {register_tables_key}, re-register"
                )
            registry[registry_key] = target_class
@@ -78,4 +83,5 @@
        return decorator
tables = RegisterTables()