diff options
| author | 2024-03-02 11:35:00 +0800 | |
|---|---|---|
| committer | 2024-03-02 11:35:00 +0800 | |
| commit | b18c32da9df9673cc1acee78c251151f7e7411ec (patch) | |
| tree | 7051f3105ded970bd4698ecdbc56c83b0839f693 /src | |
| parent | 7b4f2631a05d09e494af866156e85ef4e27bd5cb (diff) | |
| download | infini-b18c32da9df9673cc1acee78c251151f7e7411ec.tar.gz infini-b18c32da9df9673cc1acee78c251151f7e7411ec.zip | |
fix(injector): fix injector variables
Diffstat (limited to 'src')
| -rw-r--r-- | src/infini/generator.py | 2 | ||||
| -rw-r--r-- | src/infini/injector.py | 10 |
2 files changed, 4 insertions, 8 deletions
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) |
