Add auto-parameter support & refactor

This commit is contained in:
Andras Schmelczer 2022-05-26 13:34:28 +02:00
commit cfbbd578aa

View file

@ -0,0 +1,28 @@
import inspect
from typing import Any, Callable
from great_ai.great_ai.helper.get_function_metadata_store import (
get_function_metadata_store,
)
from .parameter import parameter
def automatically_decorate_parameters(func: Callable[..., Any]) -> Callable[..., Any]:
signature = inspect.signature(func)
parameter_names = [
param.name
for param in signature.parameters.values()
if param.kind == param.POSITIONAL_OR_KEYWORD
]
metadata = get_function_metadata_store(func)
for name in parameter_names:
if (
name not in metadata.model_parameter_names
and name not in metadata.input_parameter_names
):
func = parameter(name)(func)
return func