support dot notation for driver config

This commit is contained in:
yanyongyu 2021-06-20 23:38:42 +08:00
parent 7879346ca1
commit 69cee3844e
2 changed files with 8 additions and 2 deletions

View File

@ -199,8 +199,12 @@ def init(*, _env_file: Optional[str] = None, **kwargs):
logger.opt(colors=True).debug( logger.opt(colors=True).debug(
f"Loaded <y><b>Config</b></y>: {escape_tag(str(config.dict()))}") f"Loaded <y><b>Config</b></y>: {escape_tag(str(config.dict()))}")
DriverClass: Type[Driver] = getattr( modulename, _, cls = config.driver.partition(":")
importlib.import_module(config.driver), "Driver") module = importlib.import_module(modulename)
instance = module
for attr_str in (cls or "Driver").split("."):
instance = getattr(instance, attr_str)
DriverClass: Type[Driver] = instance # type: ignore
_driver = DriverClass(env, config) _driver = DriverClass(env, config)

View File

@ -144,6 +144,8 @@ class Config(BaseConfig):
:说明: :说明:
NoneBot 运行所使用的 ``Driver`` 继承自 ``nonebot.driver.BaseDriver`` NoneBot 运行所使用的 ``Driver`` 继承自 ``nonebot.driver.BaseDriver``
配置格式为 ``<module>[:<class>]``默认类名为 ``Driver``
""" """
host: IPvAnyAddress = IPv4Address("127.0.0.1") # type: ignore host: IPvAnyAddress = IPv4Address("127.0.0.1") # type: ignore
""" """