MCPcopy
hub / github.com/modelscope/FunASR / register

Method register

funasr/register.py:49–89  ·  view source on GitHub ↗

Decorator to register a class.

(self, register_tables_key: str, key: str = None)

Source from the content-addressed store, hash-verified

47 print("\n")
48
49 def register(self, register_tables_key: str, key: str = None) -> callable:
50 """Decorator to register a class."""
51
52 def decorator(target_class):
53 """Decorator.
54
55 Args:
56 target_class: TODO.
57 """
58 if not hasattr(self, register_tables_key):
59 setattr(self, register_tables_key, {})
60 logging.debug(f"New registry table added: {register_tables_key}")
61
62 registry = getattr(self, register_tables_key)
63 registry_key = key if key is not None else target_class.__name__
64
65 if registry_key in registry:
66 logging.debug(
67 f"Key {registry_key} already exists in {register_tables_key}, re-register"
68 )
69
70 registry[registry_key] = target_class
71
72 register_tables_key_meta = register_tables_key + "_meta"
73 if not hasattr(self, register_tables_key_meta):
74 setattr(self, register_tables_key_meta, {})
75 registry_meta = getattr(self, register_tables_key_meta)
76
77 class_file = inspect.getfile(target_class)
78 class_line = inspect.getsourcelines(target_class)[1]
79 pattern = r"^.+/funasr/"
80 class_file = re.sub(pattern, "funasr/", class_file)
81 meta_data = [
82 registry_key,
83 target_class.__name__,
84 f"{class_file}:{class_line}",
85 ]
86 registry_meta[registry_key] = meta_data
87 return target_class
88
89 return decorator
90
91
92tables = RegisterTables()

Callers 5

cxFunction · 0.80
qCFunction · 0.80
decoder.jsFile · 0.80
hrFunction · 0.80
abs_scheduler.pyFile · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected