comparison env/lib/python3.7/site-packages/planemo/commands/cmd_run.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
comparison
equal deleted inserted replaced
4:79f47841a781 5:9b1c78e6ba9c
1 """Module describing the planemo ``cwl_run`` command."""
2 from __future__ import print_function
3
4 import json
5
6 import click
7 from galaxy.util import unicodify
8
9 from planemo import options
10 from planemo.cli import command_function
11 from planemo.engine import engine_context
12 from planemo.io import warn
13 from planemo.tools import uri_to_path
14
15
16 @click.command('run')
17 @options.required_tool_arg(allow_uris=True)
18 @options.required_job_arg()
19 @options.galaxy_run_options()
20 @options.galaxy_config_options()
21 @options.enable_cwl_option()
22 @options.galaxy_cwl_root_option()
23 @options.run_output_directory_option()
24 @options.run_output_json_option()
25 @options.engine_options()
26 @command_function
27 def cli(ctx, uri, job_path, **kwds):
28 """Planemo command for running tools and jobs.
29
30 \b
31 % planemo run cat1-tool.cwl cat-job.json
32 """
33 path = uri_to_path(ctx, uri)
34 # TODO: convert UI to runnable and do a better test of cwl.
35 is_cwl = path.endswith(".cwl")
36 kwds["cwl"] = is_cwl
37 if kwds.get("engine", None) is None:
38 kwds["engine"] = "galaxy" if not is_cwl else "cwltool"
39
40 with engine_context(ctx, **kwds) as engine:
41 run_result = engine.run(path, job_path)
42
43 if not run_result.was_successful:
44 warn("Run failed [%s]" % unicodify(run_result))
45 ctx.exit(1)
46
47 outputs_dict = run_result.outputs_dict
48 print(outputs_dict)
49 output_json = kwds.get("output_json", None)
50 if output_json:
51 with open(output_json, "w") as f:
52 json.dump(outputs_dict, f)
53
54 return 0