Esempio n. 1
0
 def _parse_output(
     self,
     data_elem,
     tool,
     default_format="data",
     default_format_source=None,
     default_metadata_source="",
 ):
     output = galaxy.tools.ToolOutput(data_elem.get("name"))
     output_format = data_elem.get("format", default_format)
     auto_format = string_as_bool(data_elem.get("auto_format", "false"))
     if auto_format and output_format != "data":
         raise ValueError(
             "Setting format and auto_format is not supported at this time."
         )
     elif auto_format:
         output_format = "_sniff_"
     output.format = output_format
     output.change_format = data_elem.findall("change_format")
     output.format_source = data_elem.get("format_source",
                                          default_format_source)
     output.metadata_source = data_elem.get("metadata_source",
                                            default_metadata_source)
     output.parent = data_elem.get("parent", None)
     output.label = xml_text(data_elem, "label")
     output.count = int(data_elem.get("count", 1))
     output.filters = data_elem.findall('filter')
     output.tool = tool
     output.from_work_dir = data_elem.get("from_work_dir", None)
     output.hidden = string_as_bool(data_elem.get("hidden", ""))
     output.actions = ToolOutputActionGroup(output,
                                            data_elem.find('actions'))
     output.dataset_collectors = output_collect.dataset_collectors_from_elem(
         data_elem)
     return output
Esempio n. 2
0
 def _parse_output(
     self,
     data_elem,
     tool,
     default_format="data",
     default_format_source=None,
     default_metadata_source="",
 ):
     output = galaxy.tools.ToolOutput( data_elem.get("name") )
     output_format = data_elem.get("format", default_format)
     auto_format = string_as_bool( data_elem.get( "auto_format", "false" ) )
     if auto_format and output_format != "data":
         raise ValueError("Setting format and auto_format is not supported at this time.")
     elif auto_format:
         output_format = "_sniff_"
     output.format = output_format
     output.change_format = data_elem.findall("change_format")
     output.format_source = data_elem.get("format_source", default_format_source)
     output.metadata_source = data_elem.get("metadata_source", default_metadata_source)
     output.parent = data_elem.get("parent", None)
     output.label = xml_text( data_elem, "label" )
     output.count = int( data_elem.get("count", 1) )
     output.filters = data_elem.findall( 'filter' )
     output.tool = tool
     output.from_work_dir = data_elem.get("from_work_dir", None)
     output.hidden = string_as_bool( data_elem.get("hidden", "") )
     output.actions = galaxy.tools.ToolOutputActionGroup( output, data_elem.find( 'actions' ) )
     output.dataset_collectors = output_collect.dataset_collectors_from_elem( data_elem )
     return output
Esempio n. 3
0
 def _replace_output_collectors(self, xml_str):
     # Rewrite tool as if it had been created with output containing
     # supplied dataset_collector elem.
     elem = util.parse_xml_string(xml_str)
     self.tool.outputs[
         DEFAULT_TOOL_OUTPUT].dataset_collectors = output_collect.dataset_collectors_from_elem(
             elem)
Esempio n. 4
0
 def _parse_output(
     self,
     data_elem,
     tool,
     default_format="data",
     default_format_source=None,
     default_metadata_source="",
 ):
     output = galaxy.tools.ToolOutput( data_elem.get("name") )
     output.format = data_elem.get("format", default_format)
     output.change_format = data_elem.findall("change_format")
     output.format_source = data_elem.get("format_source", default_format_source)
     output.metadata_source = data_elem.get("metadata_source", default_metadata_source)
     output.parent = data_elem.get("parent", None)
     output.label = xml_text( data_elem, "label" )
     output.count = int( data_elem.get("count", 1) )
     output.filters = data_elem.findall( 'filter' )
     output.tool = tool
     output.from_work_dir = data_elem.get("from_work_dir", None)
     output.hidden = string_as_bool( data_elem.get("hidden", "") )
     output.actions = galaxy.tools.ToolOutputActionGroup( output, data_elem.find( 'actions' ) )
     output.dataset_collectors = output_collect.dataset_collectors_from_elem( data_elem )
     return output
Esempio n. 5
0
 def _parse_output(
     self,
     data_elem,
     tool,
     default_format="data",
     default_format_source=None,
     default_metadata_source="",
 ):
     output = galaxy.tools.ToolOutput( data_elem.get("name") )
     output.format = data_elem.get("format", default_format)
     output.change_format = data_elem.findall("change_format")
     output.format_source = data_elem.get("format_source", default_format_source)
     output.metadata_source = data_elem.get("metadata_source", default_metadata_source)
     output.parent = data_elem.get("parent", None)
     output.label = xml_text( data_elem, "label" )
     output.count = int( data_elem.get("count", 1) )
     output.filters = data_elem.findall( 'filter' )
     output.tool = tool
     output.from_work_dir = data_elem.get("from_work_dir", None)
     output.hidden = string_as_bool( data_elem.get("hidden", "") )
     output.actions = galaxy.tools.ToolOutputActionGroup( output, data_elem.find( 'actions' ) )
     output.dataset_collectors = output_collect.dataset_collectors_from_elem( data_elem )
     return output
Esempio n. 6
0
    def parse_outputs(self, tool):
        out_elem = self.root.find("outputs")
        outputs = odict()
        output_collections = odict()
        if out_elem is None:
            return outputs, output_collections

        data_dict = odict()

        def _parse(data_elem, **kwds):
            output_def = self._parse_output(data_elem, tool, **kwds)
            data_dict[output_def.name] = output_def
            return output_def

        map(_parse, out_elem.findall("data"))

        for collection_elem in out_elem.findall("collection"):
            name = collection_elem.get("name")
            label = xml_text(collection_elem, "label")
            default_format = collection_elem.get("format", "data")
            collection_type = collection_elem.get("type", None)
            structured_like = collection_elem.get("structured_like", None)
            inherit_format = False
            inherit_metadata = False
            if structured_like:
                inherit_format = string_as_bool(
                    collection_elem.get("inherit_format", None))
                inherit_metadata = string_as_bool(
                    collection_elem.get("inherit_metadata", None))
            default_format_source = collection_elem.get("format_source", None)
            default_metadata_source = collection_elem.get(
                "metadata_source", "")
            filters = collection_elem.findall('filter')

            dataset_collectors = None
            if collection_elem.find("discover_datasets") is not None:
                dataset_collectors = output_collect.dataset_collectors_from_elem(
                    collection_elem)
            structure = galaxy.tools.ToolOutputCollectionStructure(
                collection_type=collection_type,
                structured_like=structured_like,
                dataset_collectors=dataset_collectors,
            )
            output_collection = galaxy.tools.ToolOutputCollection(
                name,
                structure,
                label=label,
                filters=filters,
                default_format=default_format,
                inherit_format=inherit_format,
                inherit_metadata=inherit_metadata,
                default_format_source=default_format_source,
                default_metadata_source=default_metadata_source,
            )
            outputs[output_collection.name] = output_collection

            for data_elem in collection_elem.findall("data"):
                _parse(
                    data_elem,
                    default_format=default_format,
                    default_format_source=default_format_source,
                    default_metadata_source=default_metadata_source,
                )

            for data_elem in collection_elem.findall("data"):
                output_name = data_elem.get("name")
                data = data_dict[output_name]
                assert data
                del data_dict[output_name]
                output_collection.outputs[output_name] = data
            output_collections[name] = output_collection

        for output_def in data_dict.values():
            outputs[output_def.name] = output_def
        return outputs, output_collections
Esempio n. 7
0
    def parse_outputs(self, tool):
        out_elem = self.root.find("outputs")
        outputs = odict()
        output_collections = odict()
        if out_elem is None:
            return outputs, output_collections

        data_dict = odict()

        def _parse(data_elem, **kwds):
            output_def = self._parse_output(data_elem, tool, **kwds)
            data_dict[output_def.name] = output_def
            return output_def

        map(_parse, out_elem.findall("data"))

        for collection_elem in out_elem.findall("collection"):
            name = collection_elem.get( "name" )
            label = xml_text( collection_elem, "label" )
            default_format = collection_elem.get( "format", "data" )
            collection_type = collection_elem.get( "type", None )
            structured_like = collection_elem.get( "structured_like", None )
            inherit_format = False
            inherit_metadata = False
            if structured_like:
                inherit_format = string_as_bool( collection_elem.get( "inherit_format", None ) )
                inherit_metadata = string_as_bool( collection_elem.get( "inherit_metadata", None ) )
            default_format_source = collection_elem.get( "format_source", None )
            default_metadata_source = collection_elem.get( "metadata_source", "" )

            dataset_collectors = None
            if collection_elem.find( "discover_datasets" ) is not None:
                dataset_collectors = output_collect.dataset_collectors_from_elem( collection_elem )
            structure = galaxy.tools.ToolOutputCollectionStructure(
                collection_type=collection_type,
                structured_like=structured_like,
                dataset_collectors=dataset_collectors,
            )
            output_collection = galaxy.tools.ToolOutputCollection(
                name,
                structure,
                label=label,
                default_format=default_format,
                inherit_format=inherit_format,
                inherit_metadata=inherit_metadata,
                default_format_source=default_format_source,
                default_metadata_source=default_metadata_source,
            )
            outputs[output_collection.name] = output_collection

            for data_elem in collection_elem.findall("data"):
                _parse(
                    data_elem,
                    default_format=default_format,
                    default_format_source=default_format_source,
                    default_metadata_source=default_metadata_source,
                )

            for data_elem in collection_elem.findall("data"):
                output_name = data_elem.get("name")
                data = data_dict[output_name]
                assert data
                del data_dict[output_name]
                output_collection.outputs[output_name] = data
            output_collections[ name ] = output_collection

        for output_def in data_dict.values():
            outputs[output_def.name] = output_def
        return outputs, output_collections
 def _replace_output_collectors( self, xml_str ):
     # Rewrite tool as if it had been created with output containing
     # supplied dataset_collector elem.
     elem = util.parse_xml_string( xml_str )
     self.tool.outputs[ DEFAULT_TOOL_OUTPUT ].dataset_collectors = output_collect.dataset_collectors_from_elem( elem )