🐛 Fix: 修复 ArgParam 不支持 Annotated (#2124)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
eya46
2023-06-24 19:18:24 +08:00
committed by GitHub
parent 3cdbf35dc6
commit 8de25447b3
3 changed files with 40 additions and 1 deletions

View File

@ -389,6 +389,10 @@ class ArgParam(Param):
return cls(
Required, key=param.default.key or param.name, type=param.default.type
)
elif get_origin(param.annotation) is Annotated:
for arg in get_args(param.annotation):
if isinstance(arg, ArgInner):
return cls(Required, key=arg.key or param.name, type=arg.type)
async def _solve(self, matcher: "Matcher", **kwargs: Any) -> Any:
key: str = self.extra["key"]