mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-10-26 12:36:40 +00:00 
			
		
		
		
	📝 Feature: 补充依赖注入部分情况下类型错误时的日志提示 (#2343)
This commit is contained in:
		| @@ -101,6 +101,7 @@ class Dependent(Generic[R]): | |||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     async def __call__(self, **kwargs: Any) -> R: |     async def __call__(self, **kwargs: Any) -> R: | ||||||
|  |         try: | ||||||
|             # do pre-check |             # do pre-check | ||||||
|             await self.check(**kwargs) |             await self.check(**kwargs) | ||||||
|  |  | ||||||
| @@ -112,6 +113,9 @@ class Dependent(Generic[R]): | |||||||
|                 return await cast(Callable[..., Awaitable[R]], self.call)(**values) |                 return await cast(Callable[..., Awaitable[R]], self.call)(**values) | ||||||
|             else: |             else: | ||||||
|                 return await run_sync(cast(Callable[..., R], self.call))(**values) |                 return await run_sync(cast(Callable[..., R], self.call))(**values) | ||||||
|  |         except SkippedException as e: | ||||||
|  |             logger.trace(f"{self} skipped due to {e}") | ||||||
|  |             raise | ||||||
|  |  | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def parse_params( |     def parse_params( | ||||||
| @@ -195,19 +199,10 @@ class Dependent(Generic[R]): | |||||||
|         return cls(call, params, parameterless_params) |         return cls(call, params, parameterless_params) | ||||||
|  |  | ||||||
|     async def check(self, **params: Any) -> None: |     async def check(self, **params: Any) -> None: | ||||||
|         try: |         await asyncio.gather(*(param._check(**params) for param in self.parameterless)) | ||||||
|         await asyncio.gather( |         await asyncio.gather( | ||||||
|                 *(param._check(**params) for param in self.parameterless) |             *(cast(Param, param.field_info)._check(**params) for param in self.params) | ||||||
|         ) |         ) | ||||||
|             await asyncio.gather( |  | ||||||
|                 *( |  | ||||||
|                     cast(Param, param.field_info)._check(**params) |  | ||||||
|                     for param in self.params |  | ||||||
|                 ) |  | ||||||
|             ) |  | ||||||
|         except SkippedException as e: |  | ||||||
|             logger.trace(f"{self} skipped due to {e}") |  | ||||||
|             raise |  | ||||||
|  |  | ||||||
|     async def _solve_field(self, field: ModelField, params: Dict[str, Any]) -> Any: |     async def _solve_field(self, field: ModelField, params: Dict[str, Any]) -> Any: | ||||||
|         param = cast(Param, field.field_info) |         param = cast(Param, field.field_info) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user