diff --git a/dffml/df/base.py b/dffml/df/base.py index 3f1505ac0c..4ce1fe323b 100644 --- a/dffml/df/base.py +++ b/dffml/df/base.py @@ -193,6 +193,18 @@ def wrap(func): if not "conditions" in kwargs: kwargs["conditions"] = [] + primitive_types = (int, float, str, bool) + + if not "inputs" in kwargs: + sig = inspect.signature(func) + kwargs["inputs"] = {} + + for name, param in sig.parameters.items(): + if param.annotation in primitive_types: + kwargs["inputs"][name] = Definition( + name=name, primitive=param.annotation.__name__ + ) + func.op = Operation(**kwargs) func.ENTRY_POINT_NAME = ["operation"] cls_name = (