platypush/platypush/plugins/xmpp/_handlers/_registry.py

21 lines
535 B
Python

from collections import defaultdict
from typing import Type
from typing_extensions import override
from .._base import XmppBasePlugin
from ._base import XmppBaseHandler
class XmppHandlersRegistry(defaultdict):
"""
A registry of the initialized XMPP handlers.
"""
def __init__(self, plugin: XmppBasePlugin):
super().__init__()
self._plugin = plugin
@override
def __missing__(self, hndl_type: Type[XmppBaseHandler]) -> XmppBaseHandler:
return self._plugin.register_handler(hndl_type)