Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion cwl_utils/cwl_v1_2_expression_refactor.py
Original file line number Diff line number Diff line change
Expand Up @@ -712,7 +712,9 @@ def process_workflow_inputs_and_outputs(
source_type_items.append("null")
elif source_type_items != "null":
source_type_items = ["null", source_type_items]
source_type = cwl.CommandInputParameter(type_=source_type_items)
source_type = cwl.CommandInputParameter(
id=None, type_=source_type_items
)
replace_expr_with_etool(
expression,
etool_id,
Expand Down
74 changes: 40 additions & 34 deletions cwl_utils/parser/cwl_v1_2.py
Original file line number Diff line number Diff line change
Expand Up @@ -4378,6 +4378,10 @@ class Identified(Saveable):
pass


class IdentifierRequired(Identified):
pass


class LoadContents(Saveable):
pass

Expand All @@ -4394,7 +4398,7 @@ class OutputFormat(Saveable):
pass


class Parameter(FieldBase, Documented, Identified):
class Parameter(FieldBase, Documented, IdentifierRequired):
"""
Define an input or output parameter to a process.

Expand Down Expand Up @@ -13750,12 +13754,12 @@ class CommandInputParameter(InputParameter):

def __init__(
self,
id: Any,
type_: Any,
label: Optional[Any] = None,
secondaryFiles: Optional[Any] = None,
streamable: Optional[Any] = None,
doc: Optional[Any] = None,
id: Optional[Any] = None,
format: Optional[Any] = None,
loadContents: Optional[Any] = None,
loadListing: Optional[Any] = None,
Expand Down Expand Up @@ -13837,7 +13841,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -13885,7 +13889,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
label = None
Expand Down Expand Up @@ -14504,12 +14508,12 @@ class CommandOutputParameter(OutputParameter):

def __init__(
self,
id: Any,
type_: Any,
label: Optional[Any] = None,
secondaryFiles: Optional[Any] = None,
streamable: Optional[Any] = None,
doc: Optional[Any] = None,
id: Optional[Any] = None,
format: Optional[Any] = None,
outputBinding: Optional[Any] = None,
extension_fields: Optional[dict[str, Any]] = None,
Expand Down Expand Up @@ -14579,7 +14583,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -14627,7 +14631,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
label = None
Expand Down Expand Up @@ -19322,12 +19326,12 @@ class ExpressionToolOutputParameter(OutputParameter):

def __init__(
self,
id: Any,
type_: Any,
label: Optional[Any] = None,
secondaryFiles: Optional[Any] = None,
streamable: Optional[Any] = None,
doc: Optional[Any] = None,
id: Optional[Any] = None,
format: Optional[Any] = None,
extension_fields: Optional[dict[str, Any]] = None,
loadingOptions: Optional[LoadingOptions] = None,
Expand Down Expand Up @@ -19393,7 +19397,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -19441,7 +19445,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
label = None
Expand Down Expand Up @@ -19827,12 +19831,12 @@ class WorkflowInputParameter(InputParameter):

def __init__(
self,
id: Any,
type_: Any,
label: Optional[Any] = None,
secondaryFiles: Optional[Any] = None,
streamable: Optional[Any] = None,
doc: Optional[Any] = None,
id: Optional[Any] = None,
format: Optional[Any] = None,
loadContents: Optional[Any] = None,
loadListing: Optional[Any] = None,
Expand Down Expand Up @@ -19914,7 +19918,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -19962,7 +19966,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
label = None
Expand Down Expand Up @@ -21312,12 +21316,12 @@ class WorkflowOutputParameter(OutputParameter):

def __init__(
self,
id: Any,
type_: Any,
label: Optional[Any] = None,
secondaryFiles: Optional[Any] = None,
streamable: Optional[Any] = None,
doc: Optional[Any] = None,
id: Optional[Any] = None,
format: Optional[Any] = None,
outputSource: Optional[Any] = None,
linkMerge: Optional[Any] = None,
Expand Down Expand Up @@ -21395,7 +21399,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -21443,7 +21447,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
label = None
Expand Down Expand Up @@ -21994,7 +21998,7 @@ class Sink(Saveable):
pass


class WorkflowStepInput(Identified, Sink, LoadContents, Labeled):
class WorkflowStepInput(IdentifierRequired, Sink, LoadContents, Labeled):
"""
The input of a workflow step connects an upstream parameter (from the
workflow inputs, or the outputs of other workflows steps) with the input
Expand Down Expand Up @@ -22111,7 +22115,7 @@ class WorkflowStepInput(Identified, Sink, LoadContents, Labeled):

def __init__(
self,
id: Optional[Any] = None,
id: Any,
source: Optional[Any] = None,
linkMerge: Optional[Any] = None,
pickValue: Optional[Any] = None,
Expand Down Expand Up @@ -22190,7 +22194,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -22238,7 +22242,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
source = None
Expand Down Expand Up @@ -22732,7 +22736,7 @@ def save(
)


class WorkflowStepOutput(Identified):
class WorkflowStepOutput(IdentifierRequired):
"""
Associate an output parameter of the underlying process with a workflow
parameter. The workflow parameter (given in the `id` field) be may be used
Expand All @@ -22749,7 +22753,7 @@ class WorkflowStepOutput(Identified):

def __init__(
self,
id: Optional[Any] = None,
id: Any,
extension_fields: Optional[dict[str, Any]] = None,
loadingOptions: Optional[LoadingOptions] = None,
) -> None:
Expand Down Expand Up @@ -22790,7 +22794,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -22838,7 +22842,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
extension_fields: dict[str, Any] = {}
Expand Down Expand Up @@ -22897,7 +22901,7 @@ def save(
attrs = frozenset(["id"])


class WorkflowStep(Identified, Labeled, Documented):
class WorkflowStep(IdentifierRequired, Labeled, Documented):
"""
A workflow step is an executable element of a workflow. It specifies the
underlying process implementation (such as `CommandLineTool` or another
Expand Down Expand Up @@ -22985,10 +22989,10 @@ class WorkflowStep(Identified, Labeled, Documented):

def __init__(
self,
id: Any,
in_: Any,
out: Any,
run: Any,
id: Optional[Any] = None,
label: Optional[Any] = None,
doc: Optional[Any] = None,
requirements: Optional[Any] = None,
Expand Down Expand Up @@ -23072,7 +23076,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -23120,7 +23124,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
label = None
Expand Down Expand Up @@ -24972,12 +24976,12 @@ class OperationInputParameter(InputParameter):

def __init__(
self,
id: Any,
type_: Any,
label: Optional[Any] = None,
secondaryFiles: Optional[Any] = None,
streamable: Optional[Any] = None,
doc: Optional[Any] = None,
id: Optional[Any] = None,
format: Optional[Any] = None,
loadContents: Optional[Any] = None,
loadListing: Optional[Any] = None,
Expand Down Expand Up @@ -25055,7 +25059,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -25103,7 +25107,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
label = None
Expand Down Expand Up @@ -25667,12 +25671,12 @@ class OperationOutputParameter(OutputParameter):

def __init__(
self,
id: Any,
type_: Any,
label: Optional[Any] = None,
secondaryFiles: Optional[Any] = None,
streamable: Optional[Any] = None,
doc: Optional[Any] = None,
id: Optional[Any] = None,
format: Optional[Any] = None,
extension_fields: Optional[dict[str, Any]] = None,
loadingOptions: Optional[LoadingOptions] = None,
Expand Down Expand Up @@ -25738,7 +25742,7 @@ def fromDoc(
try:
id = load_field(
_doc.get("id"),
uri_union_of_None_type_or_strtype_True_False_None_None,
uri_strtype_True_False_None_None,
baseuri,
loadingOptions,
lc=_doc.get("id")
Expand Down Expand Up @@ -25786,7 +25790,7 @@ def fromDoc(
if docRoot is not None:
id = docRoot
else:
id = "_:" + str(_uuid__.uuid4())
_errors__.append(ValidationException("missing id"))
if not __original_id_is_none:
baseuri = cast(str, id)
label = None
Expand Down Expand Up @@ -29219,6 +29223,7 @@ def save(
"File": "https://w3id.org/cwl/cwl#File",
"IOSchema": "https://w3id.org/cwl/cwl#IOSchema",
"Identified": "https://w3id.org/cwl/cwl#Identified",
"IdentifierRequired": "https://w3id.org/cwl/cwl#IdentifierRequired",
"InitialWorkDirRequirement": "https://w3id.org/cwl/cwl#InitialWorkDirRequirement",
"InlineJavascriptRequirement": "https://w3id.org/cwl/cwl#InlineJavascriptRequirement",
"InplaceUpdateRequirement": "https://w3id.org/cwl/cwl#InplaceUpdateRequirement",
Expand Down Expand Up @@ -29371,6 +29376,7 @@ def save(
"https://w3id.org/cwl/cwl#File": "File",
"https://w3id.org/cwl/cwl#IOSchema": "IOSchema",
"https://w3id.org/cwl/cwl#Identified": "Identified",
"https://w3id.org/cwl/cwl#IdentifierRequired": "IdentifierRequired",
"https://w3id.org/cwl/cwl#InitialWorkDirRequirement": "InitialWorkDirRequirement",
"https://w3id.org/cwl/cwl#InlineJavascriptRequirement": "InlineJavascriptRequirement",
"https://w3id.org/cwl/cwl#InplaceUpdateRequirement": "InplaceUpdateRequirement",
Expand Down
Loading