Feature: 添加 get_adapter 类型 overload (#1755)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Ju4tCode
2023-02-28 14:46:09 +08:00
committed by GitHub
parent 317a2b8c9b
commit d0f832c4cd
4 changed files with 92 additions and 81 deletions

View File

@ -39,7 +39,7 @@ FrontMatter:
import os
from importlib.metadata import version
from typing import Any, Dict, Type, Union, Optional
from typing import Any, Dict, Type, Union, TypeVar, Optional, overload
import loguru
from pydantic.env_settings import DotenvType
@ -55,6 +55,8 @@ try:
except Exception: # pragma: no cover
__version__ = None
A = TypeVar("A", bound=Adapter)
_driver: Optional[Driver] = None
@ -79,6 +81,16 @@ def get_driver() -> Driver:
return _driver
@overload
def get_adapter(name: str) -> Adapter:
...
@overload
def get_adapter(name: Type[A]) -> A:
...
def get_adapter(name: Union[str, Type[Adapter]]) -> Adapter:
"""获取已注册的 {ref}`nonebot.adapters.Adapter` 实例。