From b18c32da9df9673cc1acee78c251151f7e7411ec Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Sat, 2 Mar 2024 11:35:00 +0800 Subject: fix(injector): fix injector variables --- src/infini/generator.py | 2 +- src/infini/injector.py | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/infini/generator.py b/src/infini/generator.py index a8946949..5473dade 100644 --- a/src/infini/generator.py +++ b/src/infini/generator.py @@ -19,7 +19,7 @@ class TextGenerator: # TODO 兼容多类型事件 variables.update(output.variables) for name, variable in variables.items(): if callable(variable): - variables[name] = injector.output(variable, output.variables) + variables[name] = injector.output(variable, variables) return self.match(output).render(variables) def match(self, output: Output) -> Template: diff --git a/src/infini/injector.py b/src/infini/injector.py index b4c2bea4..be1a86de 100644 --- a/src/infini/injector.py +++ b/src/infini/injector.py @@ -20,16 +20,12 @@ class Injector: if param_name in parameters: if not isinstance(parameters[param_name], param.annotation): raise ValueError( - f"Parameter with name '{param_name}' has a mismatch type." + f"Parameter with name '{param_name}' has a mismatch type, " + f"expected '{param.annotation!r}' but got '{type(parameters[param_name])!r}'." ) inject_params[param_name] = parameters[param_name] else: - for parameter in parameters: - if isinstance(parameter, param.annotation): - inject_params[param_name] = parameter - break - else: - inject_params[param_name] = default + inject_params[param_name] = default bound_args = signature.bind(**inject_params) bound_args.apply_defaults() return lambda: func(*bound_args.args, **bound_args.kwargs) -- cgit v1.2.3-70-g09d2