mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-12-25 21:05:50 +08:00
28 lines
731 B
Python
28 lines
731 B
Python
import abc
|
|
from collections import defaultdict
|
|
from typing import TYPE_CHECKING, List, Type, Mapping, MutableMapping
|
|
|
|
if TYPE_CHECKING:
|
|
from .matcher import Matcher
|
|
|
|
|
|
class MatcherProvider(abc.ABC, MutableMapping[int, List[Type["Matcher"]]]):
|
|
"""事件响应器存储器基类
|
|
|
|
参数:
|
|
matchers: 当前存储器中已有的事件响应器
|
|
"""
|
|
|
|
@abc.abstractmethod
|
|
def __init__(self, matchers: Mapping[int, List[Type["Matcher"]]]):
|
|
raise NotImplementedError
|
|
|
|
|
|
class _DictProvider(defaultdict, MatcherProvider):
|
|
def __init__(self, matchers: Mapping[int, List[Type["Matcher"]]]):
|
|
super().__init__(list, matchers)
|
|
|
|
|
|
DEFAULT_PROVIDER_CLASS = _DictProvider
|
|
"""默认存储器类型"""
|