registry.py 570 B

123456789101112131415161718192021
  1. from UserDict import UserDict
  2. class Panel(UserDict):
  3. data = dict() # Global registry.
  4. def __init__(self, logger, listener, hostname=None):
  5. self.logger = logger
  6. self.hostname = hostname
  7. self.listener = listener
  8. @classmethod
  9. def register(cls, method, name=None):
  10. cls.data[name or method.__name__] = method
  11. @classmethod
  12. def unregister(cls, name_or_method):
  13. name = name_or_method
  14. if not isinstance(name_or_method, basestring):
  15. name = name_or_method.__name__
  16. cls.data.pop(name)