Skip to content

Commit 9be0e33

Browse files
authored
Use consistent job loader context between load_tool and load_job_order. (#425)
1 parent 9f469ff commit 9be0e33

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

cwltool/load_tool.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@
2424

2525
_logger = logging.getLogger("cwltool")
2626

27+
jobloaderctx = {
28+
u"cwl": "https://w3id.org/cwl/cwl#",
29+
u"path": {u"@type": u"@id"},
30+
u"location": {u"@type": u"@id"},
31+
u"format": {u"@type": u"@id"},
32+
u"id": u"@id"
33+
}
2734

2835
def fetch_document(argsworkflow, # type: Union[Text, dict[Text, Any]]
2936
resolver=None, # type: Callable[[Loader, Union[Text, dict[Text, Any]]], Text]
@@ -33,7 +40,7 @@ def fetch_document(argsworkflow, # type: Union[Text, dict[Text, Any]]
3340
# type: (...) -> Tuple[Loader, CommentedMap, Text]
3441
"""Retrieve a CWL document."""
3542

36-
document_loader = Loader({"cwl": "https://w3id.org/cwl/cwl#", "id": "@id"},
43+
document_loader = Loader(jobloaderctx,
3744
fetcher_constructor=fetcher_constructor)
3845

3946
uri = None # type: Text
@@ -143,6 +150,7 @@ def validate_document(document_loader, # type: Loader
143150
jobobj = None
144151
if "cwl:tool" in workflowobj:
145152
jobobj, _ = document_loader.resolve_all(workflowobj, uri)
153+
print "ZZZZZ", jobobj
146154
uri = urllib.parse.urljoin(uri, workflowobj["https://w3id.org/cwl/cwl#tool"])
147155
del cast(dict, jobobj)["https://w3id.org/cwl/cwl#tool"]
148156
workflowobj = fetch_document(uri, fetcher_constructor=fetcher_constructor)[1]

cwltool/main.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from . import draft2tool, workflow
2323
from .cwlrdf import printdot, printrdf
2424
from .errors import UnsupportedRequirement, WorkflowException
25-
from .load_tool import fetch_document, make_tool, validate_document
25+
from .load_tool import fetch_document, make_tool, validate_document, jobloaderctx
2626
from .mutation import MutationManager
2727
from .pack import pack
2828
from .pathmapper import (adjustDirObjs, adjustFileObjs, get_listing,
@@ -424,13 +424,9 @@ def load_job_order(args, t, stdin, print_input_deps=False, relative_deps=False,
424424

425425
job_order_object = None
426426

427-
jobloaderctx = {
428-
u"path": {u"@type": u"@id"},
429-
u"location": {u"@type": u"@id"},
430-
u"format": {u"@type": u"@id"},
431-
u"id": u"@id"}
432-
jobloaderctx.update(t.metadata.get("$namespaces", {}))
433-
loader = Loader(jobloaderctx, fetcher_constructor=fetcher_constructor)
427+
_jobloaderctx = jobloaderctx.copy()
428+
_jobloaderctx.update(t.metadata.get("$namespaces", {}))
429+
loader = Loader(_jobloaderctx, fetcher_constructor=fetcher_constructor)
434430

435431
if len(args.job_order) == 1 and args.job_order[0][0] != "-":
436432
job_order_file = args.job_order[0]

0 commit comments

Comments
 (0)