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(
f"Loaded <y><b>Config</b></y>: {escape_tag(str(config.dict()))}")
DriverClass: Type[Driver] = getattr(
importlib.import_module(config.driver), "Driver")
modulename, _, cls = config.driver.partition(":")
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)