Skip to content

Commit 0e98de8

Browse files
authored
remove unecessary codepaths (#1152)
1 parent fdae902 commit 0e98de8

File tree

3 files changed

+23
-25
lines changed

3 files changed

+23
-25
lines changed

cwltool/load_tool.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -305,16 +305,9 @@ def resolve_and_validate_document(loadingContext,
305305
if loadingContext.do_update in (True, None):
306306
if "cwlVersion" not in metadata:
307307
metadata["cwlVersion"] = cwlVersion
308-
processobj = cast(CommentedMap, cmap(update.update(
309-
processobj, document_loader, fileuri, loadingContext.enable_dev, metadata)))
310-
if isinstance(processobj, MutableMapping):
311-
document_loader.idx[processobj["id"]] = processobj
312-
elif isinstance(processobj, MutableSequence):
313-
document_loader.idx[metadata["id"]] = metadata
314-
for po in processobj:
315-
document_loader.idx[po["id"]] = po
316-
else:
317-
raise Exception("'processobj' was not MutableMapping or MutableSequence %s" % type(processobj))
308+
processobj = update.update(
309+
processobj, document_loader, fileuri, loadingContext.enable_dev, metadata)
310+
document_loader.idx[processobj["id"]] = processobj
318311

319312
if jobobj is not None:
320313
loadingContext.jobdefaults = jobobj

cwltool/update.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,17 @@ def rewrite_requirements(t):
4646
rewrite_requirements(s)
4747

4848
def update_secondaryFiles(t):
49-
if isinstance(t, MutableSequence):
50-
return [update_secondaryFiles(p) for p in t]
49+
if isinstance(t, CommentedSeq):
50+
new_seq = copy.deepcopy(t)
51+
for index, entry in enumerate(t):
52+
new_seq[index] = update_secondaryFiles(entry)
53+
return new_seq
54+
elif isinstance(t, MutableSequence):
55+
return CommentedSeq([update_secondaryFiles(p) for p in t])
5156
elif isinstance(t, MutableMapping):
5257
return t
5358
else:
54-
return {"pattern": t}
59+
return CommentedMap([("pattern", t)])
5560

5661
def fix_inputBinding(t):
5762
for i in t["inputs"]:
@@ -71,9 +76,9 @@ def fix_inputBinding(t):
7176
if isinstance(upd, MutableMapping) and "$graph" in upd:
7277
upd = upd["$graph"]
7378
for proc in aslist(upd):
74-
proc.setdefault("hints", [])
75-
proc["hints"].insert(0, {"class": "NetworkAccess", "networkAccess": True})
76-
proc["hints"].insert(0, {"class": "LoadListingRequirement", "loadListing": "deep_listing"})
79+
proc.setdefault("hints", CommentedSeq())
80+
proc["hints"].insert(0, CommentedMap([("class", "NetworkAccess"),( "networkAccess", True)]))
81+
proc["hints"].insert(0, CommentedMap([("class", "LoadListingRequirement"),("loadListing", "deep_listing")]))
7782
if "cwlVersion" in proc:
7883
del proc["cwlVersion"]
7984

@@ -108,7 +113,7 @@ def checkversion(doc, # type: Union[CommentedSeq, CommentedMap]
108113
metadata, # type: CommentedMap
109114
enable_dev # type: bool
110115
):
111-
# type: (...) -> Tuple[Union[CommentedSeq, CommentedMap], Text]
116+
# type: (...) -> Tuple[CommentedMap, Text]
112117
"""Check the validity of the version of the give CWL document.
113118
114119
Returns the document and the validated version string.
@@ -151,16 +156,15 @@ def checkversion(doc, # type: Union[CommentedSeq, CommentedMap]
151156

152157

153158
def update(doc, loader, baseuri, enable_dev, metadata):
154-
# type: (Union[CommentedSeq, CommentedMap], Loader, Text, bool, Any) -> Union[CommentedSeq, CommentedMap]
159+
# type: (Union[CommentedSeq, CommentedMap], Loader, Text, bool, Any) -> CommentedMap
155160

156-
if (metadata.get("http://commonwl.org/cwltool#original_cwlVersion") or
157-
(isinstance(doc, CommentedMap) and doc.get("http://commonwl.org/cwltool#original_cwlVersion"))):
158-
return doc
159-
160-
(cdoc, originalversion) = checkversion(doc, metadata, enable_dev)
161-
version = originalversion
161+
if isinstance(doc, CommentedMap):
162+
if metadata.get("http://commonwl.org/cwltool#original_cwlVersion") \
163+
or doc.get("http://commonwl.org/cwltool#original_cwlVersion"):
164+
return doc
162165

163166
(cdoc, version) = checkversion(doc, metadata, enable_dev)
167+
originalversion = copy.copy(version)
164168

165169
nextupdate = identity # type: Optional[Callable[[Any, Loader, Text], Tuple[Any, Text]]]
166170

tests/test_toolargparse.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
@needs_docker
8080
@pytest.mark.parametrize('name,script_contents,params', scripts_argparse_params)
8181
def test_argparse(name, script_contents, params, tmpdir):
82+
script = None
8283
try:
8384
script = NamedTemporaryFile(mode='w', delete=False)
8485
script.write(script_contents)
@@ -91,5 +92,5 @@ def test_argparse(name, script_contents, params, tmpdir):
9192
except SystemExit as err:
9293
assert err.code == 0, name
9394
finally:
94-
if os.path.exists(script.name):
95+
if script and script.name and os.path.exists(script.name):
9596
os.unlink(script.name)

0 commit comments

Comments
 (0)