Skip to content

Commit c594c88

Browse files
authored
Merge pull request #1 from YuxinZhaozyx/dev
feature: add unregister and is_registered to Registry.
2 parents af5ed9a + ff0bde5 commit c594c88

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

easycore/common/registry/registry.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,29 @@ def decorator(func_or_class:object) -> object:
8888
name = obj.__name__
8989
self._do_register(name, obj)
9090

91+
def unregister(self, name:str) -> None:
92+
"""
93+
Remove registered object.
94+
95+
Args:
96+
name (str): registered name
97+
"""
98+
if name not in self._obj_map:
99+
raise KeyError("An object named '{}' isn't registered in '{}' registry.".format(name, self._name))
100+
else:
101+
del self._obj_map[name]
102+
103+
def is_registered(self, name):
104+
"""
105+
Get whether the given name has been registered.
106+
107+
Args:
108+
name (str):
109+
110+
Returns:
111+
bool: whether the name has been registered.
112+
"""
113+
return name in self._obj_map
91114

92115
def get(self, name:str) -> object:
93116
"""

easycore/torch/parallel/engine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def __init__(self,
4646
init_func,
4747
work_func,
4848
end_func):
49-
super(BaseRunner._Consumer, self).__init__()
49+
super(BaseRunner._Consumer, self).__init__(daemon=True)
5050
self.receive_func = receive_func
5151
self.input_queue = input_queue
5252
self.output_queue = output_queue

test/registry/test_registry.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,17 @@ def C():
5353

5454
registered_names = FUNC_REGISTRY.registered_names()
5555
assert set(registered_names) == set(['A', 'B', 'C', 'D'])
56-
56+
57+
def test_unregister():
58+
REGISTRY = Registry("test")
59+
60+
assert REGISTRY.is_registered('obj') == False
61+
62+
REGISTRY.register('obj', ["hello world"])
63+
64+
assert REGISTRY.is_registered('obj') == True
65+
66+
REGISTRY.unregister('obj')
67+
68+
assert REGISTRY.is_registered('obj') == False
69+

0 commit comments

Comments
 (0)