From 50bbfe4ce91117ee88d6020fe194e7cd14d41f4e Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Sun, 31 Mar 2024 22:08:49 +0800 Subject: fix(injector): fix injector error when subscrib annocation found --- src/infini/injector.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/infini/injector.py b/src/infini/injector.py index be1a86de..462664a8 100644 --- a/src/infini/injector.py +++ b/src/infini/injector.py @@ -1,4 +1,5 @@ from infini.typing import Callable, T, Optional, Dict, Any +from typing import get_origin import inspect @@ -18,7 +19,9 @@ class Injector: for param_name, param in signature.parameters.items(): default = None if param.default == inspect._empty else param.default if param_name in parameters: - if not isinstance(parameters[param_name], param.annotation): + if type(parameters[param_name]) != ( + get_origin(param.annotation) or param.annotation + ): raise ValueError( f"Parameter with name '{param_name}' has a mismatch type, " f"expected '{param.annotation!r}' but got '{type(parameters[param_name])!r}'." -- cgit v1.2.3-70-g09d2