@@ -193,7 +193,8 @@ def validate_document(document_loader, # type: Loader
193
193
fetcher_constructor = None , # type: FetcherConstructorType
194
194
skip_schemas = None , # type: bool
195
195
overrides = None , # type: List[Dict]
196
- metadata = None # type: Optional[Dict]
196
+ metadata = None , # type: Optional[Dict]
197
+ do_validate = True
197
198
):
198
199
# type: (...) -> Tuple[Loader, Names, Union[Dict[Text, Any], List[Dict[Text, Any]]], Dict[Text, Any], Text]
199
200
"""Validate a CWL document."""
@@ -209,7 +210,7 @@ def validate_document(document_loader, # type: Loader
209
210
jobobj = None
210
211
if "cwl:tool" in workflowobj :
211
212
job_loader = default_loader (fetcher_constructor ) # type: ignore
212
- jobobj , _ = job_loader .resolve_all (workflowobj , uri )
213
+ jobobj , _ = job_loader .resolve_all (workflowobj , uri , checklinks = do_validate )
213
214
uri = urllib .parse .urljoin (uri , workflowobj ["https://w3id.org/cwl/cwl#tool" ])
214
215
del cast (dict , jobobj )["https://w3id.org/cwl/cwl#tool" ]
215
216
@@ -262,7 +263,7 @@ def validate_document(document_loader, # type: Loader
262
263
_add_blank_ids (workflowobj )
263
264
264
265
workflowobj ["id" ] = fileuri
265
- processobj , new_metadata = document_loader .resolve_all (workflowobj , fileuri )
266
+ processobj , new_metadata = document_loader .resolve_all (workflowobj , fileuri , checklinks = do_validate )
266
267
if not isinstance (processobj , (CommentedMap , CommentedSeq )):
267
268
raise ValidationException ("Workflow must be a dict or list." )
268
269
@@ -277,7 +278,8 @@ def validate_document(document_loader, # type: Loader
277
278
if preprocess_only :
278
279
return document_loader , avsc_names , processobj , new_metadata , uri
279
280
280
- schema .validate_doc (avsc_names , processobj , document_loader , strict )
281
+ if do_validate :
282
+ schema .validate_doc (avsc_names , processobj , document_loader , strict )
281
283
282
284
if new_metadata .get ("cwlVersion" ) != update .LATEST :
283
285
processobj = cast (CommentedMap , cmap (update .update (
0 commit comments