diff --git a/pollination_dsl/alias/inputs.py b/pollination_dsl/alias/inputs.py index 7c2badf..3253224 100644 --- a/pollination_dsl/alias/inputs.py +++ b/pollination_dsl/alias/inputs.py @@ -4,7 +4,7 @@ DAGIntegerInputAlias, DAGNumberInputAlias, DAGBooleanInputAlias, \ DAGJSONObjectInputAlias, DAGArrayInputAlias, DAGFileInputAlias, \ DAGFolderInputAlias, DAGPathInputAlias, DAGLinkedInputAlias -from queenbee.base.basemodel import BaseModel, Field +from queenbee.base.basemodel import BaseModel, Field, validator from queenbee.io.common import ItemType, IOAliasHandler @@ -39,11 +39,16 @@ class _InputAliasBase(BaseModel): 'value can be any strings as long as it has been agreed between client-side ' 'developer and author of the recipe.' ) + handler: List[IOAliasHandler] = Field( - ..., + None, description='List of process actions to process the input or output value.' ) + @validator('handler', always=True) + def create_empty_list(cls, v): + return [] if v is None else v + @property def required(self): if self.optional: diff --git a/pollination_dsl/alias/outputs.py b/pollination_dsl/alias/outputs.py index 7a392ee..3698829 100644 --- a/pollination_dsl/alias/outputs.py +++ b/pollination_dsl/alias/outputs.py @@ -8,7 +8,7 @@ DAGFileOutputAlias, DAGPathOutputAlias, DAGJSONObjectOutputAlias, DAGArrayOutputAlias, DAGLinkedOutputAlias ) -from queenbee.base.basemodel import BaseModel +from queenbee.base.basemodel import BaseModel, validator from queenbee.io.common import ItemType, IOAliasHandler from pydantic import Field @@ -59,10 +59,14 @@ class _OutputAliasBase(BaseModel): ) handler: List[IOAliasHandler] = Field( - ..., + None, description='List of process actions to process the input or output value.' ) + @validator('handler', always=True) + def create_empty_list(cls, v): + return [] if v is None else v + @property def required(self): if self.optional: