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]]
|