common-workflow-language / common-workflow-language/schema_salad

codegen: CWL v1.x: workflow step "out" fields fail to parse if in long form

Open
#359 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
86
Forks
64
Avg merge
19h 24m
Merged PRs (30d)
19

Description

Using `docker_extract.py` from both [0.7](https://github.com/common-workflow-language/cwl-utils/releases/tag/0.7) and [0.8](https://github.com/common-workflow-language/cwl-utils/releases/tag/0.8) releases of cwl-utils in order to try prefetching singularity images from a workflow is raising a cryptic exception

```
docker_extract.py -s /tmp/sing_containers https://raw.githubusercontent.com/inab/Wetlab2Variations/eosc-life/cwl-workflows/workflows/workflow.cwl
Traceback (most recent call last):
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/bin/docker_extract.py", line 98, in
main(parse_args())
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/bin/docker_extract.py", line 38, in main
top = cwl.load_document(args.input)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 10451, in load_document
return _document_load(union_of_CommandLineToolLoader_or_ExpressionToolLoader_or_WorkflowLoader_or_array_of_union_of_CommandLineToolLoader_or_ExpressionToolLoader_or_WorkflowLoader, doc, baseuri, loadingOptions)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 474, in _document_load
loader, loadingOptions.fetcher.urljoin(baseuri, doc), loadingOptions
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 518, in _document_load_by_url
return _document_load(loader, result, url, loadingOptions)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 492, in _document_load
return loader.load(doc, baseuri, loadingOptions, docRoot=baseuri)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 327, in load
return t.load(doc, baseuri, loadingOptions, docRoot=docRoot)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 311, in load
return self.classtype.fromDoc(doc, baseuri, loadingOptions, docRoot=docRoot)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 9598, in fromDoc
'steps'), idmap_steps_union_of_array_of_WorkflowStepLoader, baseuri, loadingOptions)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 128, in load_field
return fieldtype.load(val, baseuri, loadingOptions)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 467, in load
return self.inner.load(doc, baseuri, loadingOptions)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 327, in load
return t.load(doc, baseuri, loadingOptions, docRoot=docRoot)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 273, in load
doc[i], _UnionLoader((self, self.items)), baseuri, loadingOptions
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 128, in load_field
return fieldtype.load(val, baseuri, loadingOptions)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 327, in load
return t.load(doc, baseuri, loadingOptions, docRoot=docRoot)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 311, in load
return self.classtype.fromDoc(doc, baseuri, loadingOptions, docRoot=docRoot)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 9157, in fromDoc
'out'), uri_union_of_array_of_union_of_strtype_or_WorkflowStepOutputLoader_True_False_None, baseuri, loadingOptions)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 128, in load_field
return fieldtype.load(val, baseuri, loadingOptions)
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 360, in load
for i in doc
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 360, in
for i in doc
File "/tmp/wfexs-backend-test/CWLWorkflowEngine/3.0.20201026152241/lib64/python3.6/site-packages/cwl_utils/parser_v1_0.py", line 178, in expand_url
split = urlsplit(url)
File "/usr/lib64/python3.6/urllib/parse.py", line 418, in urlsplit
url, scheme, _coerce_result = _coerce_args(url, scheme)
File "/usr/lib64/python3.6/urllib/parse.py", line 123, in _coerce_args
return _decode_args(args) + (_encode_result,)
File "/usr/lib64/python3.6/urllib/parse.py", line 107, in _decode_args
return tuple(x.decode(encoding, errors) if x else '' for x in args)
File "/usr/lib64/python3.6/urllib/parse.py", line 107, in
return tuple(x.decode(encoding, errors) if x else '' for x in args)
AttributeError: 'CommentedMap' object has no attribute 'decode'

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.