diff env/lib/python3.7/site-packages/ephemeris/install_tool_deps.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/ephemeris/install_tool_deps.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-#!/usr/bin/env python
-'''Tool to install tool dependencies on a Galaxy instance.'''
-import argparse
-import logging as log
-import os
-import xml.etree.ElementTree as ET
-
-import yaml
-from bioblend import ConnectionError as ConnErr
-from bioblend.galaxy.tools import ToolClient
-
-from ephemeris import get_galaxy_connection
-from ephemeris.common_parser import get_common_args
-
-timeout_codes = (408, 502, 504)
-
-
-def _parser():
-    parent = get_common_args()
-    parser = argparse.ArgumentParser(parents=[parent])
-    parser.add_argument("-t", "--tool", help='Path to a tool file, tool_conf file, or yaml file containing a sequence of tool ids', nargs='*')
-    parser.add_argument("-i", "--id", help='Space-separated list of tool ids', nargs='*')
-
-    return parser
-
-
-def _install(tool_client, tool_id):
-    try:
-        tool_client.install_dependencies(tool_id)
-    except ConnErr as e:
-        if e.status_code in timeout_codes:
-            log.warning(e.body)
-        else:
-            raise
-
-
-def main():
-    """
-    This script uses bioblend to trigger dependencies installations for the provided tools
-    """
-    args = _parser().parse_args()
-    gi = get_galaxy_connection(args)
-    tool_client = ToolClient(gi)
-
-    if args.verbose:
-        log.basicConfig(level=log.DEBUG)
-
-    if args.tool:
-        for tool_conf_path in args.tool:  # type: str
-            _, ext = os.path.splitext(tool_conf_path)
-            if ext == '.xml':
-                log.info("tool_conf xml found, parsing..")
-                # install all
-                root = ET.ElementTree(file=tool_conf_path).getroot()
-                if root.tag == "toolbox":
-                    # Install all from tool_conf
-                    tool_path = root.get('tool_path', '')
-                    tool_path = tool_path.replace('${tool_conf_dir}', os.path.abspath(os.path.dirname(tool_conf_path)))
-                    if tool_path:
-                        log.info("Searching for tools relative to " + tool_path)
-                    tools = root.findall(".//tool[@file]")
-                    if len(tools) == 0:
-                        log.warning("No tools found in tool_conf")
-                        continue
-
-                    for tool in tools:
-                        tool_id = ET.ElementTree(file=os.path.join(tool_path, tool.get('file'))).getroot().get('id')
-                        if tool_id:
-                            log.info("Installing tool dependencies for " + tool_id + " from: " + tool.get('file'))
-                            _install(tool_client, tool_id)
-                elif root.tag == "tool" and root.get('id'):
-                    # Install from single tool file
-                    log.info("Tool xml found. Installing " + root.get('id') + " dependencies..")
-                    _install(tool_client, root.get('id'))
-            else:
-                log.info("YAML tool list found, parsing..")
-                with open(tool_conf_path) as fh:
-                    tool_ids = yaml.safe_load(fh)
-                for tool_id in tool_ids:
-                    # Install from yaml file
-                    log.info("Installing " + tool_id + " dependencies..")
-                    _install(tool_client, tool_id)
-
-    if args.id:
-        for tool_id in args.id:  # type: str
-            log.info("Installing " + tool_id + " dependencies..")
-            _install(tool_client, tool_id.strip())
-
-
-if __name__ == '__main__':
-    main()