Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/gxformat2/main.py @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4f3585e2f14b |
---|---|
1 """Module containing :func:`convert_and_import_workflow`.""" | |
2 import os | |
3 | |
4 from .converter import python_to_workflow, yaml_to_workflow | |
5 from .interface import BioBlendImporterGalaxyInterface | |
6 from .yaml import ordered_load | |
7 | |
8 | |
9 def convert_and_import_workflow(has_workflow, **kwds): | |
10 """Conversion and import Format 2 workflows into a target Galaxy instance.""" | |
11 galaxy_interface = kwds.get("galaxy_interface", None) | |
12 if galaxy_interface is None: | |
13 galaxy_interface = BioBlendImporterGalaxyInterface(**kwds) | |
14 | |
15 source_type = kwds.get("source_type", None) | |
16 workflow_directory = kwds.get("workflow_directory", None) | |
17 if source_type == "path": | |
18 workflow_path = has_workflow | |
19 if workflow_directory is None: | |
20 workflow_directory = os.path.dirname(has_workflow) | |
21 with open(workflow_path, "r") as f: | |
22 has_workflow = ordered_load(f) | |
23 | |
24 if workflow_directory is not None: | |
25 workflow_directory = os.path.abspath(workflow_directory) | |
26 | |
27 convert = kwds.get("convert", True) | |
28 raw_yaml = kwds.get("raw_yaml", False) | |
29 if raw_yaml and convert: | |
30 raise Exception("Incompatible options selected.") | |
31 if convert: | |
32 if isinstance(has_workflow, dict): | |
33 workflow = python_to_workflow(has_workflow, galaxy_interface, workflow_directory) | |
34 else: | |
35 workflow = yaml_to_workflow(has_workflow, galaxy_interface, workflow_directory) | |
36 else: | |
37 workflow = has_workflow | |
38 if not isinstance(workflow, dict) and not raw_yaml: | |
39 workflow = ordered_load(workflow) | |
40 else: | |
41 workflow = {"yaml_content": workflow} | |
42 | |
43 name = kwds.get("name", None) | |
44 if name is not None: | |
45 workflow["name"] = name | |
46 publish = kwds.get("publish", False) | |
47 exact_tools = kwds.get("exact_tools", False) | |
48 fill_defaults = kwds.get("fill_defaults", True) | |
49 import_kwds = { | |
50 "fill_defaults": fill_defaults | |
51 } | |
52 if publish: | |
53 import_kwds["publish"] = True | |
54 if exact_tools: | |
55 import_kwds["exact_tools"] = True | |
56 return galaxy_interface.import_workflow(workflow, **import_kwds) | |
57 | |
58 | |
59 __all__ = ( | |
60 'convert_and_import_workflow', | |
61 ) |