|
26 | 26 | from . import workflow
|
27 | 27 | from .errors import WorkflowException, UnsupportedRequirement
|
28 | 28 | from .cwlrdf import printrdf, printdot
|
29 |
| -from .process import shortname, Process, getListing, relocateOutputs, cleanIntermediate |
| 29 | +from .process import shortname, Process, getListing, relocateOutputs, cleanIntermediate, scandeps |
30 | 30 | from .load_tool import fetch_document, validate_document, make_tool
|
31 | 31 | from . import draft2tool
|
32 | 32 | from .builder import adjustFileObjs, adjustDirObjs
|
@@ -423,29 +423,29 @@ def pathToLoc(p):
|
423 | 423 | return (job_order_object, input_basedir)
|
424 | 424 |
|
425 | 425 |
|
426 |
| -def printdeps(obj, document_loader, stdout, relative_deps, basedir=None): |
| 426 | +def printdeps(obj, document_loader, stdout, relative_deps, uri, basedir=None): |
427 | 427 | # type: (Dict[unicode, Any], Loader, IO[Any], bool, str) -> None
|
428 | 428 | deps = {"class": "File",
|
429 |
| - "path": obj.get("id", "#")} |
| 429 | + "location": uri} |
430 | 430 |
|
431 | 431 | def loadref(b, u):
|
432 | 432 | return document_loader.resolve_ref(u, base_url=b)[0]
|
433 | 433 |
|
434 |
| - sf = scandeps(basedir if basedir else obj["id"], obj, |
| 434 | + sf = scandeps(basedir if basedir else uri, obj, |
435 | 435 | set(("$import", "run")),
|
436 |
| - set(("$include", "$schemas", "path")), loadref) |
| 436 | + set(("$include", "$schemas", "path", "location")), loadref) |
437 | 437 | if sf:
|
438 | 438 | deps["secondaryFiles"] = sf
|
439 | 439 |
|
440 | 440 | if relative_deps:
|
441 | 441 | if relative_deps == "primary":
|
442 |
| - base = basedir if basedir else os.path.dirname(obj["id"]) |
| 442 | + base = basedir if basedir else os.path.dirname(uri) |
443 | 443 | elif relative_deps == "cwd":
|
444 | 444 | base = "file://" + os.getcwd()
|
445 | 445 | else:
|
446 | 446 | raise Exception(u"Unknown relative_deps %s" % relative_deps)
|
447 | 447 | def makeRelative(ob):
|
448 |
| - u = ob["location"] |
| 448 | + u = ob.get("location", ob.get("path")) |
449 | 449 | if ":" in u.split("/")[0] and not u.startswith("file://"):
|
450 | 450 | pass
|
451 | 451 | else:
|
@@ -604,7 +604,7 @@ def main(argsl=None,
|
604 | 604 | document_loader, workflowobj, uri = fetch_document(args.workflow)
|
605 | 605 |
|
606 | 606 | if args.print_deps:
|
607 |
| - printdeps(workflowobj, document_loader, stdout, args.relative_deps) |
| 607 | + printdeps(workflowobj, document_loader, stdout, args.relative_deps, uri) |
608 | 608 | return 0
|
609 | 609 |
|
610 | 610 | document_loader, avsc_names, processobj, metadata, uri \
|
|
0 commit comments