Source code for natch.abstract.registry

import abc


[docs]class Registry(abc.ABC): __metaclass__ = abc.ABCMeta def __init__(self, *args, **kwargs): self.index = kwargs.get('index') self.hasher = kwargs.get('hasher')
[docs] def get_index(self): return self._index
[docs] def set_index(self, index): if index is None: index = dict() self._index = index
[docs] def del_index(self): self._index = dict()
@property def index(self): index = self.get_index() return index @index.setter def index(self, index): self.set_index(index) @index.deleter def index(self): self.del_index()
[docs] def get_hasher(self): return self._hasher
[docs] def set_hasher(self, hasher): self._hasher = hasher
[docs] def del_hasher(self): self._hasher = None
@property def hasher(self): hasher = self.get_hasher() return hasher @hasher.setter def hasher(self, hasher): self.set_hasher(hasher) @hasher.deleter def hasher(self): self.del_hasher()
[docs] @abc.abstractmethod def register(self, func, rule): raise NotImplementedError( f'{self.__class__.__name__}.register method is not implemented.', )
[docs] @abc.abstractmethod def unregister(self, func, rule): raise NotImplementedError( f'{self.__class__.__name__}.unregister method is not implemented.', )
[docs] @abc.abstractmethod def lookup(self, func, *args, **kwargs): raise NotImplementedError( f'{self.__class__.__name__}.lookup method is not implemented.', )