[docs]class Registry:
"""
Simple registry class holding aliases and their corresponding values
"""
def __init__(self):
self._registry = {}
def __contains__(self, item):
return item in self._registry
def __getitem__(self, item):
return self._registry[item]
def __setitem__(self, key, value):
if key in self._registry:
raise ValueError(
"Conflict: alias '%s' is already registered by '%s'" %
(key, self._registry[key].__module__))
self._registry[key] = value
def __delitem__(self, key):
del self._registry[key]
[docs] def register(self, key, value):
return self.__setitem__(key, value)
[docs] def unregister(self, key):
return self.__delitem__(key)
[docs] def keys(self):
return self._registry.keys()