| 252 | |
| 253 | |
| 254 | def _resolve_combine_expr(obj_str: str) -> type[Driver]: |
| 255 | drivers = obj_str.split("+") |
| 256 | DriverClass = resolve_dot_notation( |
| 257 | drivers[0], "Driver", default_prefix="nonebot.drivers." |
| 258 | ) |
| 259 | if len(drivers) == 1: |
| 260 | logger.trace(f"Detected driver {DriverClass} with no mixins.") |
| 261 | return DriverClass |
| 262 | mixins = [ |
| 263 | resolve_dot_notation(mixin, "Mixin", default_prefix="nonebot.drivers.") |
| 264 | for mixin in drivers[1:] |
| 265 | ] |
| 266 | logger.trace(f"Detected driver {DriverClass} with mixins {mixins}.") |
| 267 | return combine_driver(DriverClass, *mixins) |
| 268 | |
| 269 | |
| 270 | def _log_patcher(record: "loguru.Record"): |