Skip to content

Commit e6dd92a

Browse files
authored
Merge pull request #931 from common-workflow-language/input_object_not_dict
catch and explain invalid input object
2 parents 1b391e4 + 2ca9a2a commit e6dd92a

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

cwltool/main.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ def load_job_order(args, # type: argparse.Namespace
229229
): # type: (...) -> Tuple[MutableMapping[Text, Any], Text, Loader]
230230

231231
job_order_object = None
232+
job_order_file = None
232233

233234
_jobloaderctx = jobloaderctx.copy()
234235
loader = Loader(_jobloaderctx, fetcher_constructor=fetcher_constructor) # type: ignore
@@ -249,13 +250,21 @@ def load_job_order(args, # type: argparse.Namespace
249250
job_order_object, _ = loader.resolve_ref(job_order_file, checklinks=False)
250251

251252
if job_order_object and "http://commonwl.org/cwltool#overrides" in job_order_object:
253+
ov_uri = file_uri(job_order_file or input_basedir)
252254
overrides_list.extend(
253-
resolve_overrides(job_order_object, file_uri(job_order_file), tool_file_uri))
255+
resolve_overrides(job_order_object, ov_uri, tool_file_uri))
254256
del job_order_object["http://commonwl.org/cwltool#overrides"]
255257

256258
if not job_order_object:
257259
input_basedir = args.basedir if args.basedir else os.getcwd()
258260

261+
if job_order_object and not isinstance(job_order_object, MutableMapping):
262+
_logger.error(
263+
'CWL input object at %s is not formatted correctly, it should be a '
264+
'JSON/YAML dictionay, not %s.\n'
265+
'Raw input object:\n%s', job_order_file or "stdin",
266+
type(job_order_object), job_order_object)
267+
sys.exit(1)
259268
return (job_order_object, input_basedir, loader)
260269

261270

0 commit comments

Comments
 (0)