1010# Internal libraries
1111
1212from .requirements import Requirement
13- from .utils import literal , literal_presenter , Serializable
13+ from .utils import literal , literal_presenter , Serializable , value_or_default
1414from .common import Parameter , CWL_SHEBANG
1515from .workflowdeps import InputParameter , WorkflowOutputParameter , WorkflowStep
1616
@@ -35,6 +35,7 @@ class Workflow(Serializable):
3535 Documentation: https://www.commonwl.org/v1.0/Workflow.html#Workflow
3636 """
3737 __CLASS__ = 'Workflow'
38+ required_fields = ["inputs" , "outputs" , "steps" ]
3839 ignore_fields_on_parse = ["class" , "requirements" ]
3940 ignore_fields_on_convert = ["inputs" , "outputs" , "requirements" ]
4041 parse_types = {
@@ -43,7 +44,7 @@ class Workflow(Serializable):
4344 "steps" : [[WorkflowStep ]],
4445 }
4546
46- def __init__ (self , workflow_id = None , label = None , doc = None , cwl_version = 'v1.0' ):
47+ def __init__ (self , workflow_id = None , label = None , doc = None , cwl_version = 'v1.0' , inputs = None , outputs = None , steps = None , requirements = None , hints = None ):
4748 """
4849 :param workflow_id: The unique identifier for this process object.
4950 :type workflow_id: STRING
@@ -59,11 +60,11 @@ def __init__(self, workflow_id=None, label=None, doc=None, cwl_version='v1.0'):
5960 self .doc = doc
6061 self .cwlVersion = cwl_version
6162
62- self .inputs = [] # list[InputParameter]
63- self .outputs = [] # list[WorkflowOutputParameter]
64- self .steps = [] # list[WorkflowStep]
65- self .requirements = [] # list[Requirement]
66- self .hints = [] # list[Requirement]
63+ self .inputs = value_or_default ( inputs , []) # list[InputParameter]
64+ self .outputs = value_or_default ( outputs , []) # list[WorkflowOutputParameter]
65+ self .steps = value_or_default ( steps , []) # list[WorkflowStep]
66+ self .requirements = value_or_default ( requirements , []) # list[Requirement]
67+ self .hints = value_or_default ( hints , []) # list[Requirement]
6768 self ._path = None
6869
6970 def get_dict (self ):
0 commit comments