diff --git a/nonebot/dependencies/__init__.py b/nonebot/dependencies/__init__.py index da02f5313b91..7c6f58c04089 100644 --- a/nonebot/dependencies/__init__.py +++ b/nonebot/dependencies/__init__.py @@ -182,13 +182,17 @@ def parse( return cls(call, params, parameterless_params) async def check(self, **params: Any) -> None: - async with anyio.create_task_group() as tg: - for param in self.parameterless: - tg.start_soon(partial(param._check, **params)) - - async with anyio.create_task_group() as tg: - for param in self.params: - tg.start_soon(partial(cast(Param, param.field_info)._check, **params)) + if self.parameterless: + async with anyio.create_task_group() as tg: + for param in self.parameterless: + tg.start_soon(partial(param._check, **params)) + + if self.params: + async with anyio.create_task_group() as tg: + for param in self.params: + tg.start_soon( + partial(cast(Param, param.field_info)._check, **params) + ) async def _solve_field(self, field: ModelField, params: dict[str, Any]) -> Any: param = cast(Param, field.field_info) @@ -205,6 +209,8 @@ async def solve(self, **params: Any) -> dict[str, Any]: # solve param values result: dict[str, Any] = {} + if not self.params: + return result async def _solve_field(field: ModelField, params: dict[str, Any]) -> None: value = await self._solve_field(field, params) diff --git a/nonebot/internal/driver/abstract.py b/nonebot/internal/driver/abstract.py index 257fc5e976b2..994abc5dea2a 100644 --- a/nonebot/internal/driver/abstract.py +++ b/nonebot/internal/driver/abstract.py @@ -158,6 +158,9 @@ def _bot_connect(self, bot: "Bot") -> None: raise RuntimeError(f"Duplicate bot connection with id {bot.self_id}") self._bots[bot.self_id] = bot + if not self._bot_connection_hook: + return + def handle_exception(exc_group: BaseExceptionGroup) -> None: for exc in flatten_exception_group(exc_group): logger.opt(colors=True, exception=exc).error( @@ -186,6 +189,9 @@ def _bot_disconnect(self, bot: "Bot") -> None: if bot.self_id in self._bots: del self._bots[bot.self_id] + if not self._bot_disconnection_hook: + return + def handle_exception(exc_group: BaseExceptionGroup) -> None: for exc in flatten_exception_group(exc_group): logger.opt(colors=True, exception=exc).error(