nonebot2/nonebot/typing.py

26 lines
682 B
Python
Raw Normal View History

2020-06-30 10:13:58 +08:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
2018-10-16 01:03:50 +08:00
2020-08-07 17:05:08 +08:00
from types import ModuleType
from typing import TYPE_CHECKING
from typing import Any, Set, List, Dict, Type, Tuple, Mapping
from typing import Union, Optional, Iterable, Callable, Awaitable
2020-08-07 17:51:57 +08:00
# import some modules needed when checking types
2020-08-07 17:05:08 +08:00
if TYPE_CHECKING:
from nonebot.adapters import BaseBot as Bot
from nonebot.event import Event
2020-06-30 10:13:58 +08:00
2020-08-07 17:51:57 +08:00
2020-08-08 23:08:01 +08:00
def overrides(InterfaceClass: object):
2020-08-07 17:51:57 +08:00
2020-08-08 23:08:01 +08:00
def overrider(func: Callable) -> Callable:
2020-08-07 17:51:57 +08:00
assert func.__name__ in dir(
InterfaceClass), f"Error method: {func.__name__}"
return func
return overrider
2020-06-30 10:13:58 +08:00
Handler = Callable[["Bot", "Event", dict], Awaitable[None]]