MCPcopy Create free account
hub / github.com/modelscope/modelscope / Registry

Class Registry

modelscope/utils/registry.py:14–131  ·  view source on GitHub ↗

Registry which support registering modules and group them by a keyname If group name is not provided, modules will be registered to default group.

Source from the content-addressed store, hash-verified

12
13
14class Registry(object):
15 """ Registry which support registering modules and group them by a keyname
16
17 If group name is not provided, modules will be registered to default group.
18 """
19
20 def __init__(self, name: str):
21 self._name = name
22 self._modules = {default_group: {}}
23
24 def __repr__(self):
25 format_str = self.__class__.__name__ + f' ({self._name})\n'
26 for group_name, group in self._modules.items():
27 format_str += f'group_name={group_name}, '\
28 f'modules={list(group.keys())}\n'
29
30 return format_str
31
32 @property
33 def name(self):
34 return self._name
35
36 @property
37 def modules(self):
38 return self._modules
39
40 def list(self):
41 """ logging the list of module in current registry
42 """
43 for group_name, group in self._modules.items():
44 logger.info(f'group_name={group_name}')
45 for m in group.keys():
46 logger.info(f'\t{m}')
47 logger.info('')
48
49 def get(self, module_key, group_key=default_group):
50 if group_key not in self._modules:
51 return None
52 else:
53 return self._modules[group_key].get(module_key, None)
54
55 def _register_module(self,
56 group_key=default_group,
57 module_name=None,
58 module_cls=None,
59 force=False):
60 assert isinstance(group_key,
61 str), 'group_key is required and must be str'
62
63 if group_key not in self._modules:
64 self._modules[group_key] = dict()
65
66 # Some registered module_cls can be function type.
67 # if not inspect.isclass(module_cls):
68 # raise TypeError(f'module is not a class type: {type(module_cls)}')
69
70 if module_name is None:
71 module_name = module_cls.__name__

Callers 15

builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90
builder.pyFile · 0.90

Calls

no outgoing calls

Tested by 4

test_listMethod · 0.72
test_buildMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…