32 lines
691 B
Python
32 lines
691 B
Python
class Registry(dict):
|
|
|
|
unregister = dict.__delitem__
|
|
|
|
def check_key(self, key):
|
|
pass
|
|
|
|
def check_value(self, value):
|
|
pass
|
|
|
|
def check(self, key, value):
|
|
try:
|
|
self.check_key(key)
|
|
except KeyError:
|
|
raise
|
|
except Exception as e:
|
|
raise KeyError(e.message)
|
|
|
|
try:
|
|
self.check_value(value)
|
|
except ValueError:
|
|
raise
|
|
except Exception as e:
|
|
raise ValueError(e.message)
|
|
|
|
def register(self, key, value):
|
|
self.__setitem__(key, value)
|
|
|
|
def __setitem__(self, key, value):
|
|
self.check(key, value)
|
|
super().__setitem__(key, value)
|