diff env/lib/python3.7/site-packages/gxformat2/cytoscape.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/gxformat2/cytoscape.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-"""Build standalone visualization for Galaxy workflows."""
-import json
-import os
-import string
-import sys
-
-import pkg_resources
-
-from gxformat2._scripts import ensure_format2
-from gxformat2._yaml import ordered_load
-from gxformat2.converter import convert_inputs_to_steps, ensure_step_position, steps_as_list
-
-CYTOSCAPE_JS_TEMPLATE = pkg_resources.resource_filename(__name__, 'cytoscape.html')
-MAIN_TS_PREFIX = "toolshed.g2.bx.psu.edu/repos/"
-
-
-def main(argv=None):
-    """Entry point for building Cytoscape visualizations of Galaxy workflows."""
-    if argv is None:
-        argv = sys.argv[1:]
-
-    workflow_path = argv[0]
-    with open(workflow_path, "r") as f:
-        workflow_dict = ordered_load(f)
-
-    workflow_dict = ensure_format2(workflow_dict)
-    elements = []
-
-    steps = steps_as_list(workflow_dict)
-    convert_inputs_to_steps(workflow_dict, steps)
-
-    for i, step in enumerate(steps):
-        step_id = step.get("id") or step.get("label") or str(i)
-        step_type = step.get("type") or 'tool'
-        classes = ["type_%s" % step_type]
-        if step_type in ['tool', 'subworkflow']:
-            classes.append("runnable")
-        else:
-            classes.append("input")
-
-        tool_id = step.get("tool_id")
-        if tool_id and tool_id.startswith(MAIN_TS_PREFIX):
-            tool_id = tool_id[len(MAIN_TS_PREFIX):]
-        label = step.get("id") or step.get("label") or ("tool:%s" % tool_id) or str(i)
-        ensure_step_position(step, i)
-        node_position = dict(x=int(step["position"]["left"]), y=int(step["position"]["top"]))
-        repo_link = None
-        if "tool_shed_repository" in step:
-            repo = step["tool_shed_repository"]
-            repo_link = "https://" + repo["tool_shed"] + "/view/" + repo["owner"] + "/" + repo["name"] + "/" + repo["changeset_revision"]
-        node_data = {
-            "id": step_id,
-            "label": label,
-            "doc": step.get("doc"),
-            "tool_id": step.get("tool_id"),
-            "step_type": step_type,
-            "repo_link": repo_link
-        }
-        elements.append({"group": "nodes", "data": node_data, "classes": classes, "position": node_position})
-        for key, value in (step.get("in") or {}).items():
-            # handle lists?
-            if isinstance(value, dict) and 'source' in value:
-                value = value["source"]
-            elif isinstance(value, dict):
-                continue
-            if "/" in value:
-                from_step, output = value.split("/", 1)
-            else:
-                from_step, output = value, None
-            edge_id = "%s__to__%s" % (step_id, from_step)
-            edge_data = {"id": edge_id, "source": from_step, "target": step_id, "input": key, "output": output}
-            elements.append({"group": "edges", "data": edge_data})
-
-    if len(argv) > 1:
-        output_path = argv[1]
-    else:
-        output_path, _ = os.path.splitext(workflow_path)
-        output_path += ".html"
-
-    if output_path.endswith(".html"):
-        with open(CYTOSCAPE_JS_TEMPLATE, "r") as f:
-            template = f.read()
-        viz = string.Template(template).safe_substitute(elements=json.dumps(elements))
-        with open(output_path, "w") as f:
-            f.write(viz)
-    else:
-        with open(output_path, "w") as f:
-            json.dump(elements, f)
-
-
-if __name__ == "__main__":
-    main()