nonebot2/tests/plugins/param/param_matcher.py

62 lines
1017 B
Python

from typing import TypeVar, Union
from nonebot.adapters import Event
from nonebot.matcher import Matcher
from nonebot.params import LastReceived, Received
async def matcher(m: Matcher) -> Matcher:
return m
async def postpone_matcher(m: "Matcher") -> Matcher:
return m
async def legacy_matcher(matcher):
return matcher
async def not_legacy_matcher(matcher: int): ...
class FooMatcher(Matcher): ...
async def sub_matcher(m: FooMatcher) -> FooMatcher:
return m
class BarMatcher(Matcher): ...
async def union_matcher(
m: Union[FooMatcher, BarMatcher],
) -> Union[FooMatcher, BarMatcher]:
return m
M = TypeVar("M", bound=Matcher)
async def generic_matcher(m: M) -> M:
return m
CM = TypeVar("CM", Matcher, None)
async def generic_matcher_none(m: CM) -> CM:
return m
async def not_matcher(m: Union[int, Matcher]): ...
async def receive(e: Event = Received("test")) -> Event:
return e
async def last_receive(e: Event = LastReceived()) -> Event:
return e