annotate toolfactory/galaxyxml/tool/import_xml.py @ 38:a30536c100bf draft

Updated history outputs
author fubar
date Wed, 12 Aug 2020 01:43:46 -0400
parents ce2b1f8ea68d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
1 import logging
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
2 import xml.etree.ElementTree as ET
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
3
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
4 import galaxyxml.tool as gxt
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
5 import galaxyxml.tool.parameters as gxtp
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
6
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
7 logging.basicConfig(level=logging.INFO)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
8 logger = logging.getLogger(__name__)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
9
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
10
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
11 class GalaxyXmlParser(object):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
12 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
13 Class to import content from an existing Galaxy XML wrapper.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
14 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
15
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
16 def _init_tool(self, xml_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
17 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
18 Init tool from existing xml tool.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
19
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
20 :param xml_root: root of the galaxy xml file.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
21 :type xml_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
22 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
23 version_cmd = None
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
24 description = None
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
25 for child in xml_root:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
26 if child.tag == "description":
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
27 description = child.text
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
28 elif child.tag == "command":
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
29 executable = child.text.split()[0]
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
30 command = child.text
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
31 elif child.tag == "version_command":
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
32 version_cmd = child.text
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
33
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
34 tool = gxt.Tool(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
35 xml_root.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
36 xml_root.attrib["id"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
37 xml_root.attrib.get("version", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
38 description,
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
39 executable,
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
40 hidden=xml_root.attrib.get("hidden", False),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
41 tool_type=xml_root.attrib.get("tool_type", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
42 URL_method=xml_root.attrib.get("URL_method", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
43 workflow_compatible=xml_root.attrib.get("workflow_compatible", True),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
44 version_command=version_cmd,
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
45 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
46 tool.command = command
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
47 return tool
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
48
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
49 def _load_description(self, tool, desc_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
50 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
51 <description> is already loaded during initiation.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
52
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
53 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
54 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
55 :param desc_root: root of <description> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
56 :type desc_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
57 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
58 logger.info("<description> is loaded during initiation of the object.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
59
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
60 def _load_version_command(self, tool, vers_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
61 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
62 <version_command> is already loaded during initiation.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
63
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
64 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
65 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
66 :param vers_root: root of <version_command> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
67 :type vers_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
68 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
69 logger.info("<version_command> is loaded during initiation of the object.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
70
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
71 def _load_stdio(self, tool, stdio_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
72 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
73 So far, <stdio> is automatically generated by galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
74
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
75 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
76 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
77 :param desc_root: root of <stdio> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
78 :type desc_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
79 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
80 logger.info("<stdio> is not loaded but automatically generated by galaxyxml.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
81
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
82 def _load_command(self, tool, desc_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
83 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
84 <command> is already loaded during initiation.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
85
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
86 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
87 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
88 :param desc_root: root of <command> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
89 :type desc_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
90 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
91 logger.info("<command> is loaded during initiation of the object.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
92
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
93 def _load_help(self, tool, help_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
94 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
95 Load the content of the <help> into the tool.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
96
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
97 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
98 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
99 :param requirements_root: root of <help> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
100 :type requirements_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
101 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
102 tool.help = help_root.text
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
103
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
104 def _load_requirements(self, tool, requirements_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
105 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
106 Add <requirements> to the tool.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
107
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
108 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
109 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
110 :param requirements_root: root of <requirements> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
111 :type requirements_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
112 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
113 tool.requirements = gxtp.Requirements()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
114 for req in requirements_root:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
115 req_type = req.attrib["type"]
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
116 value = req.text
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
117 if req.tag == "requirement":
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
118 version = req.attrib.get("version", None)
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
119 tool.requirements.append(gxtp.Requirement(req_type, value, version=version))
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
120 elif req.tag == "container":
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
121 tool.requirements.append(gxtp.Container(req_type, value))
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
122 else:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
123 logger.warning(req.tag + " is not a valid tag for requirements child")
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
124
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
125 def _load_edam_topics(self, tool, topics_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
126 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
127 Add <edam_topics> to the tool.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
128
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
129 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
130 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
131 :param topics_root: root of <edam_topics> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
132 :type topics_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
133 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
134 tool.edam_topics = gxtp.EdamTopics()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
135 for edam_topic in topics_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
136 tool.edam_topics.append(gxtp.EdamTopic(edam_topic.text))
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
137
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
138 def _load_edam_operations(self, tool, operations_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
139 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
140 Add <edam_operations> to the tool.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
141
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
142 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
143 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
144 :param operations_root: root of <edam_operations> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
145 :type operations_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
146 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
147 tool.edam_operations = gxtp.EdamOperations()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
148 for edam_op in operations_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
149 tool.edam_operations.append(gxtp.EdamOperation(edam_op.text))
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
150
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
151 def _load_configfiles(self, tool, configfiles_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
152 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
153 Add <configfiles> to the tool.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
154
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
155 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
156 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
157 :param configfiles_root: root of <configfiles> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
158 :type configfiles_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
159 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
160 tool.configfiles = gxtp.Configfiles()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
161 for conf in configfiles_root:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
162 name = conf.attrib["name"]
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
163 value = conf.text
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
164 tool.configfiles.append(gxtp.Configfile(name, value))
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
165
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
166 def _load_citations(self, tool, citations_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
167 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
168 Add <citations> to the tool.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
169
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
170 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
171 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
172 :param citations_root: root of <citations> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
173 :type citations_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
174 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
175 tool.citations = gxtp.Citations()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
176 for cit in citations_root:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
177 cit_type = cit.attrib["type"]
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
178 value = cit.text
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
179 tool.citations.append(gxtp.Citation(cit_type, value))
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
180
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
181 def _load_inputs(self, tool, inputs_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
182 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
183 Add <inputs> to the tool using the :class:`galaxyxml.tool.import_xml.InputsParser` object.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
184
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
185 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
186 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
187 :param inputs_root: root of <inputs> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
188 :type inputs_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
189 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
190 tool.inputs = gxtp.Inputs()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
191 inp_parser = InputsParser()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
192 inp_parser.load_inputs(tool.inputs, inputs_root)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
193
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
194 def _load_outputs(self, tool, outputs_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
195 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
196 Add <outputs> to the tool using the :class:`galaxyxml.tool.import_xml.OutputsParser` object.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
197
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
198 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
199 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
200 :param outputs_root: root of <outputs> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
201 :type outputs_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
202 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
203 tool.outputs = gxtp.Outputs()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
204 out_parser = OutputsParser()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
205 out_parser.load_outputs(tool.outputs, outputs_root)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
206
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
207 def _load_tests(self, tool, tests_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
208 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
209 Add <tests> to the tool using the :class:`galaxyxml.tool.import_xml.TestsParser` object.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
210
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
211 :param tool: Tool object from galaxyxml.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
212 :type tool: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
213 :param tests_root: root of <tests> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
214 :type tests_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
215 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
216 tool.tests = gxtp.Tests()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
217 tests_parser = TestsParser()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
218 tests_parser.load_tests(tool.tests, tests_root)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
219
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
220 def import_xml(self, xml_path):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
221 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
222 Load existing xml into the :class:`galaxyxml.tool.Tool` object.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
223
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
224 :param xml_path: Path of the XML to be loaded.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
225 :type xml_path: STRING
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
226 :return: XML content in the galaxyxml model.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
227 :rtype: :class:`galaxyxml.tool.Tool`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
228 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
229 xml_root = ET.parse(xml_path).getroot()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
230 tool = self._init_tool(xml_root)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
231 # Now we import each tag's field
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
232 for child in xml_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
233 try:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
234 getattr(self, "_load_{}".format(child.tag))(tool, child)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
235 except AttributeError:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
236 logger.warning(child.tag + " tag is not processed.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
237 return tool
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
238
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
239
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
240 class InputsParser(object):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
241 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
242 Class to parse content of the <inputs> tag from a Galaxy XML wrapper.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
243 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
244
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
245 def _load_text_param(self, root, text_param):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
246 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
247 Add <param type="text" /> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
248
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
249 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
250 :param text_param: root of <param> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
251 :type text_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
252 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
253 root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
254 gxtp.TextParam(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
255 text_param.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
256 optional=text_param.get("optional", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
257 label=text_param.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
258 help=text_param.get("help", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
259 value=text_param.get("value", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
260 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
261 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
262
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
263 def _load_data_param(self, root, data_param):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
264 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
265 Add <param type="data" /> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
266
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
267 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
268 :param data_param: root of <param> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
269 :type data_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
270 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
271 root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
272 gxtp.DataParam(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
273 data_param.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
274 optional=data_param.attrib.get("optional", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
275 label=data_param.attrib.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
276 help=data_param.attrib.get("help", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
277 format=data_param.attrib.get("format", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
278 multiple=data_param.attrib.get("multiple", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
279 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
280 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
281
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
282 def _load_boolean_param(self, root, bool_param):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
283 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
284 Add <param type="boolean" /> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
285
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
286 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
287 :param bool_param: root of <param> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
288 :type bool_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
289 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
290 root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
291 gxtp.BooleanParam(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
292 bool_param.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
293 optional=bool_param.attrib.get("optional", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
294 label=bool_param.attrib.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
295 help=bool_param.attrib.get("help", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
296 checked=bool_param.attrib.get("checked", False),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
297 truevalue=bool_param.attrib.get("truevalue", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
298 falsevalue=bool_param.attrib.get("falsevalue", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
299 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
300 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
301
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
302 def _load_integer_param(self, root, int_param):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
303 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
304 Add <param type="integer" /> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
305
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
306 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
307 :param int_param: root of <param> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
308 :type int_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
309 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
310 root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
311 gxtp.IntegerParam(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
312 int_param.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
313 int_param.attrib.get("value", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
314 optional=int_param.attrib.get("optional", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
315 label=int_param.attrib.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
316 help=int_param.attrib.get("help", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
317 min=int_param.attrib.get("min", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
318 max=int_param.attrib.get("max", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
319 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
320 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
321
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
322 def _load_float_param(self, root, float_param):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
323 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
324 Add <param type="float" /> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
325
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
326 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
327 :param float_param: root of <param> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
328 :type float_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
329 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
330 root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
331 gxtp.FloatParam(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
332 float_param.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
333 float_param.attrib.get("value", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
334 optional=float_param.attrib.get("optional", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
335 label=float_param.attrib.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
336 help=float_param.attrib.get("help", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
337 min=float_param.attrib.get("min", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
338 max=float_param.attrib.get("max", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
339 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
340 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
341
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
342 def _load_option_select(self, root, option):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
343 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
344 Add <option> to the root (usually <param type="select" />).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
345
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
346 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
347 :param option: root of <option> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
348 :type float_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
349 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
350 root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
351 gxtp.SelectOption(
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
352 option.attrib.get("value", None), option.text, selected=option.attrib.get("selected", False)
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
353 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
354 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
355
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
356 def _load_column_options(self, root, column):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
357 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
358 Add <column> to the root (usually <options>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
359
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
360 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
361 :param option: root of <column> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
362 :type float_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
363 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
364 root.append(gxtp.Column(column.attrib["name"], column.attrib["index"]))
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
365
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
366 def _load_filter_options(self, root, filter):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
367 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
368 Add <filter> to the root (usually <options>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
369
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
370 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
371 :param option: root of <filter> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
372 :type float_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
373 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
374 root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
375 gxtp.Filter(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
376 filter.attrib["type"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
377 column=filter.attrib.get("column", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
378 name=filter.attrib.get("name", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
379 ref=filter.attrib.get("ref", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
380 key=filter.attrib.get("key", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
381 multiple=filter.attrib.get("multiple", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
382 separator=filter.attrib.get("separator", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
383 keep=filter.attrib.get("keep", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
384 value=filter.attrib.get("value", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
385 ref_attribute=filter.attrib.get("ref_attribute", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
386 index=filter.attrib.get("index", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
387 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
388 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
389
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
390 def _load_options_select(self, root, options):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
391 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
392 Add <options> to the root (usually <param type="select" />).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
393
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
394 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
395 :param option: root of <options> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
396 :type float_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
397 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
398 opts = gxtp.Options(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
399 from_dataset=options.attrib.get("from_dataset", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
400 from_file=options.attrib.get("from_file", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
401 from_data_table=options.attrib.get("from_data_table", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
402 from_parameter=options.attrib.get("from_parameter", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
403 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
404 # Deal with child nodes (usually filter and column)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
405 for opt_child in options:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
406 try:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
407 getattr(self, "_load_{}_options".format(opt_child.tag))(opts, opt_child)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
408 except AttributeError:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
409 logger.warning(opt_child.tag + " tag is not processed for <options>.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
410 root.append(opts)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
411
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
412 def _load_select_param(self, root, sel_param):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
413 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
414 Add <param type="select" /> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
415
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
416 :param root: root to append the param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
417 :param sel_param: root of <param> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
418 :type sel_param: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
419 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
420 select_param = gxtp.SelectParam(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
421 sel_param.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
422 optional=sel_param.attrib.get("optional", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
423 label=sel_param.attrib.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
424 help=sel_param.attrib.get("help", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
425 data_ref=sel_param.attrib.get("data_ref", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
426 display=sel_param.attrib.get("display", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
427 multiple=sel_param.attrib.get("multiple", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
428 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
429 # Deal with child nodes (usually option and options)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
430 for sel_child in sel_param:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
431 try:
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
432 getattr(self, "_load_{}_select".format(sel_child.tag))(select_param, sel_child)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
433 except AttributeError:
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
434 logger.warning(sel_child.tag + " tag is not processed for <param type='select'>.")
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
435 root.append(select_param)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
436
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
437 def _load_param(self, root, param_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
438 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
439 Method to select which type of <param> is being added to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
440
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
441 :param root: root to attach param to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
442 :param param_root: root of <param> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
443 :type param_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
444 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
445 param_type = param_root.attrib["type"]
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
446 try:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
447 getattr(self, "_load_{}_param".format(param_type))(root, param_root)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
448 except AttributeError:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
449 logger.warning(param_type + " tag is not processed for <param>.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
450
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
451 def _load_when(self, root, when_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
452 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
453 Add <when> to the root (usually <conditional>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
454
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
455 :param root: root to append when to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
456 :param when_root: root of <when> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
457 :type when_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
458 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
459 when = gxtp.When(when_root.attrib["value"])
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
460 # Deal with child nodes
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
461 self.load_inputs(when, when_root)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
462 root.append(when)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
463
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
464 def _load_conditional(self, root, conditional_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
465 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
466 Add <conditional> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
467
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
468 :param root: root to append conditional to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
469 :param conditional_root: root of <conditional> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
470 :type conditional_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
471 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
472 value_ref_in_group = conditional_root.attrib.get("value_ref_in_group", None)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
473 # Other optional parameters need to be added to conditional object
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
474 conditional = gxtp.Conditional(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
475 conditional_root.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
476 value_from=conditional_root.attrib.get("value_from", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
477 value_ref=conditional_root.attrib.get("value_ref", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
478 value_ref_in_group=value_ref_in_group,
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
479 label=conditional_root.attrib.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
480 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
481 # Deal with child nodes
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
482 self.load_inputs(conditional, conditional_root)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
483 root.append(conditional)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
484
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
485 def _load_section(self, root, section_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
486 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
487 Add <section> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
488
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
489 :param root: root to append conditional to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
490 :param section_root: root of <section> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
491 :type section_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
492 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
493 section = gxtp.Section(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
494 section_root.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
495 section_root.attrib["title"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
496 expanded=section_root.attrib.get("expanded", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
497 help=section_root.attrib.get("help", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
498 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
499 # Deal with child nodes
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
500 self.load_inputs(section, section_root)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
501 root.append(section)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
502
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
503 def _load_repeat(self, root, repeat_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
504 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
505 Add <repeat> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
506
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
507 :param root: root to append repeat to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
508 :param repeat_root: root of <repeat> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
509 :param repeat_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
510 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
511 repeat = gxtp.Repeat(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
512 repeat_root.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
513 repeat_root.attrib["title"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
514 min=repeat_root.attrib.get("min", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
515 max=repeat_root.attrib.get("max", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
516 default=repeat_root.attrib.get("default", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
517 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
518 # Deal with child nodes
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
519 self.load_inputs(repeat, repeat_root)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
520 root.append(repeat)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
521
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
522 def load_inputs(self, root, inputs_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
523 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
524 Add <inputs.tag> to the root (it can be any tags with children such as
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
525 <inputs>, <repeat>, <section> ...)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
526
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
527 :param root: root to attach inputs to (either <inputs> or <when>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
528 :param inputs_root: root of <inputs> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
529 :type inputs_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
530 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
531 for inp_child in inputs_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
532 try:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
533 getattr(self, "_load_{}".format(inp_child.tag))(root, inp_child)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
534 except AttributeError:
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
535 logger.warning(inp_child.tag + " tag is not processed for <" + inputs_root.tag + "> tag.")
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
536
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
537
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
538 class OutputsParser(object):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
539 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
540 Class to parse content of the <outputs> tag from a Galaxy XML wrapper.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
541 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
542
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
543 def _load_data(self, outputs_root, data_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
544 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
545 Add <data> to <outputs>.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
546
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
547 :param outputs_root: <outputs> root to append <data> to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
548 :param data_root: root of <data> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
549 :param data_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
550 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
551 data = gxtp.OutputData(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
552 data_root.attrib.get("name", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
553 data_root.attrib.get("format", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
554 format_source=data_root.attrib.get("format_source", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
555 metadata_source=data_root.attrib.get("metadata_source", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
556 label=data_root.attrib.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
557 from_work_dir=data_root.attrib.get("from_work_dir", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
558 hidden=data_root.attrib.get("hidden", False),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
559 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
560 # Deal with child nodes
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
561 for data_child in data_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
562 try:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
563 getattr(self, "_load_{}".format(data_child.tag))(data, data_child)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
564 except AttributeError:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
565 logger.warning(data_child.tag + " tag is not processed for <data>.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
566 outputs_root.append(data)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
567
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
568 def _load_change_format(self, root, chfmt_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
569 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
570 Add <change_format> to root (<data>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
571
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
572 :param root: root to append <change_format> to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
573 :param chfm_root: root of <change_format> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
574 :param chfm_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
575 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
576 change_format = gxtp.ChangeFormat()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
577 for chfmt_child in chfmt_root:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
578 change_format.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
579 gxtp.ChangeFormatWhen(
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
580 chfmt_child.attrib["input"], chfmt_child.attrib["format"], chfmt_child.attrib["value"]
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
581 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
582 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
583 root.append(change_format)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
584
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
585 def _load_collection(self, outputs_root, coll_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
586 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
587 Add <collection> to <outputs>.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
588
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
589 :param outputs_root: <outputs> root to append <collection> to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
590 :param coll_root: root of <collection> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
591 :param coll_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
592 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
593 collection = gxtp.OutputCollection(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
594 coll_root.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
595 type=coll_root.attrib.get("type", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
596 label=coll_root.attrib.get("label", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
597 format_source=coll_root.attrib.get("format_source", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
598 type_source=coll_root.attrib.get("type_source", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
599 structured_like=coll_root.attrib.get("structured_like", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
600 inherit_format=coll_root.attrib.get("inherit_format", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
601 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
602 # Deal with child nodes
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
603 for coll_child in coll_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
604 try:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
605 getattr(self, "_load_{}".format(coll_child.tag))(collection, coll_child)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
606 except AttributeError:
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
607 logger.warning(coll_child.tag + " tag is not processed for <collection>.")
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
608 outputs_root.append(collection)
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
609
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
610 def _load_discover_datasets(self, root, disc_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
611 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
612 Add <discover_datasets> to root (<collection>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
613
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
614 :param root: root to append <collection> to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
615 :param disc_root: root of <discover_datasets> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
616 :param disc_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
617 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
618 root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
619 gxtp.DiscoverDatasets(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
620 disc_root.attrib["pattern"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
621 directory=disc_root.attrib.get("directory", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
622 format=disc_root.attrib.get("format", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
623 ext=disc_root.attrib.get("ext", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
624 visible=disc_root.attrib.get("visible", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
625 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
626 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
627
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
628 def _load_filter(self, root, filter_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
629 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
630 Add <filter> to root (<collection> or <data>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
631
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
632 :param root: root to append <collection> to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
633 :param coll_root: root of <filter> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
634 :param coll_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
635 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
636 root.append(gxtp.OutputFilter(filter_root.text))
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
637
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
638 def load_outputs(self, root, outputs_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
639 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
640 Add <outputs> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
641
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
642 :param root: root to attach <outputs> to (<tool>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
643 :param tests_root: root of <outputs> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
644 :type tests_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
645 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
646 for out_child in outputs_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
647 try:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
648 getattr(self, "_load_{}".format(out_child.tag))(root, out_child)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
649 except AttributeError:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
650 logger.warning(out_child.tag + " tag is not processed for <outputs>.")
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
651
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
652
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
653 class TestsParser(object):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
654 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
655 Class to parse content of the <tests> tag from a Galaxy XML wrapper.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
656 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
657
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
658 def _load_param(self, test_root, param_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
659 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
660 Add <param> to the <test>.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
661
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
662 :param root: <test> root to append <param> to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
663 :param repeat_root: root of <param> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
664 :param repeat_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
665 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
666 test_root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
667 gxtp.TestParam(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
668 param_root.attrib["name"],
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
669 value=param_root.attrib.get("value", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
670 ftype=param_root.attrib.get("ftype", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
671 dbkey=param_root.attrib.get("dbkey", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
672 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
673 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
674
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
675 def _load_output(self, test_root, output_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
676 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
677 Add <output> to the <test>.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
678
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
679 :param root: <test> root to append <output> to.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
680 :param repeat_root: root of <output> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
681 :param repeat_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
682 """
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
683 test_root.append(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
684 gxtp.TestOutput(
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
685 name=output_root.attrib.get("name", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
686 file=output_root.attrib.get("file", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
687 ftype=output_root.attrib.get("ftype", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
688 sort=output_root.attrib.get("sort", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
689 value=output_root.attrib.get("value", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
690 md5=output_root.attrib.get("md5", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
691 checksum=output_root.attrib.get("checksum", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
692 compare=output_root.attrib.get("compare", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
693 lines_diff=output_root.attrib.get("lines_diff", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
694 delta=output_root.attrib.get("delta", None),
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
695 )
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
696 )
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
697
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
698 def load_tests(self, root, tests_root):
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
699 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
700 Add <tests> to the root.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
701
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
702 :param root: root to attach <tests> to (<tool>).
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
703 :param tests_root: root of <tests> tag.
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
704 :type tests_root: :class:`xml.etree._Element`
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
705 """
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
706 for test_root in tests_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
707 test = gxtp.Test()
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
708 for test_child in test_root:
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
709 try:
36
ce2b1f8ea68d passes flake8 tests finally :)
fubar
parents: 35
diff changeset
710 getattr(self, "_load_{}".format(test_child.tag))(test, test_child)
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
711 except AttributeError:
38
a30536c100bf Updated history outputs
fubar
parents: 36
diff changeset
712 logger.warning(test_child.tag + " tag is not processed within <test>.")
35
5d38cb3d9be8 added patched galaxyxml code temporarily until PR accepted
fubar
parents:
diff changeset
713 root.append(test)