diff env/lib/python3.7/site-packages/planemo/cwl/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
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/planemo/cwl/run.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-"""Module defines a planemo abstraction around running cwltool.
-
-cwltool is an executable Python script and library mostly maintained by
-Peter Amstutz and serves the reference implementation for the CWL.
-It can be found at https://github.com/common-workflow-language/cwltool,
-"""
-import json
-import tempfile
-
-from galaxy.tool_util.cwl.cwltool_deps import (
-    ensure_cwltool_available,
-    main,
-)
-
-from planemo.deps import ensure_dependency_resolvers_conf_configured
-from planemo.io import error, real_io
-from planemo.runnable import (
-    ErrorRunResponse,
-    SuccessfulRunResponse,
-)
-
-JSON_PARSE_ERROR_MESSAGE = ("Failed to parse JSON from cwltool output [%s] "
-                            "in file [%s]. cwltool logs [%s].")
-
-
-class CwlToolRunResponse(SuccessfulRunResponse):
-    """Describe the resut of a cwltool invocation."""
-
-    def __init__(self, log, outputs=None):
-        self._log = log
-        self._outputs = outputs
-
-    @property
-    def log(self):
-        return self._log
-
-    @property
-    def job_info(self):
-        return None
-
-    @property
-    def outputs_dict(self):
-        return self._outputs
-
-
-def run_cwltool(ctx, path, job_path, **kwds):
-    """Translate planemo kwds to cwltool kwds and run cwltool main function."""
-    ensure_cwltool_available()
-
-    args = []
-    if ctx.verbose:
-        args.append("--verbose")
-    output_directory = kwds.get("output_directory", None)
-    if output_directory:
-        args.append("--outdir")
-        args.append(output_directory)
-    if kwds.get("no_container", False):
-        args.append("--no-container")
-        ensure_dependency_resolvers_conf_configured(ctx, kwds)
-        args.append("--beta-dependency-resolvers-configuration")
-        args.append(kwds["dependency_resolvers_config_file"])
-    if kwds.get("mulled_containers"):
-        args.append("--beta-use-biocontainers")
-
-    if kwds.get("non_strict_cwl", False):
-        args.append("--non-strict")
-
-    args.extend([path, job_path])
-    ctx.vlog("Calling cwltool with arguments %s" % args)
-    with tempfile.NamedTemporaryFile("w") as tmp_stdout, \
-            tempfile.NamedTemporaryFile("w") as tmp_stderr:
-        # cwltool passes sys.stderr to subprocess.Popen - ensure it has
-        # and actual fileno.
-        with real_io():
-            ret_code = main.main(
-                args,
-                stdout=tmp_stdout,
-                stderr=tmp_stderr,
-            )
-        tmp_stdout.flush()
-        tmp_stderr.flush()
-        with open(tmp_stderr.name, "r") as stderr_f:
-            log = stderr_f.read()
-            ctx.vlog("cwltool log output [%s]" % log)
-        with open(tmp_stdout.name, "r") as stdout_f:
-            try:
-                result = json.load(stdout_f)
-            except ValueError:
-                message = JSON_PARSE_ERROR_MESSAGE % (
-                    open(tmp_stdout.name, "r").read(),
-                    tmp_stdout.name,
-                    log
-                )
-                error(message)
-                raise Exception(message)
-
-        if ret_code != 0:
-            return ErrorRunResponse("Error running cwltool", log=log)
-        outputs = result
-    return CwlToolRunResponse(
-        log,
-        outputs=outputs,
-    )
-
-
-__all__ = (
-    "run_cwltool",
-)