Warning

This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

galaxy.tools.toolbox package

API for this module containing functionality related to the toolbox.

class galaxy.tools.toolbox.AbstractToolBox(config_filenames, tool_root_dir, app, save_integrated_tool_panel=True)[source]

Bases: galaxy.util.dictifiable.Dictifiable, galaxy.tools.toolbox.integrated_panel.ManagesIntegratedToolPanelMixin

Abstract container for managing a ToolPanel - containing tools and workflows optionally in labelled sections.

__init__(config_filenames, tool_root_dir, app, save_integrated_tool_panel=True)[source]

Create a toolbox from the config files named by config_filenames, using tool_root_dir as the base directory for finding individual tool config files.

create_tool(config_file, tool_shed_repository=None, guid=None, **kwds)[source]
create_dynamic_tool(dynamic_tool)[source]
can_load_config_file(config_filename)[source]
load_dynamic_tool(dynamic_tool)[source]
load_item(item, tool_path, panel_dict=None, integrated_panel_dict=None, load_panel_dict=True, guid=None, index=None, internal=False)[source]
get_shed_config_dict_by_filename(filename)[source]
update_shed_config(shed_conf)[source]

Update the in-memory descriptions of tools and write out the changes to integrated tool panel unless we are just deactivating a tool (since that doesn’t affect that file).

get_section(section_id, new_label=None, create_if_needed=False)[source]
create_section(section_dict)[source]
get_integrated_section_for_tool(tool)[source]
get_tool(tool_id, tool_version=None, get_all_versions=False, exact=False, tool_uuid=None)[source]

Attempt to locate a tool in the tool box. Note that exact only refers to the tool_id, not the tool_version.

has_tool(tool_id, tool_version=None, exact=False)[source]
is_missing_shed_tool(tool_id)[source]

Confirm that the tool ID does reference a shed tool and is not installed.

get_tool_id(tool_id)[source]

Take a tool id - potentially from a different Galaxy instance or that is no longer loaded - and find the closest match to the currently loaded tools (using get_tool for inexact matches which currently returns the oldest tool shed installed tool with the same short id).

get_loaded_tools_by_lineage(tool_id)[source]

Get all loaded tools associated by lineage to the tool whose id is tool_id.

tools()[source]
dynamic_confs(include_migrated_tool_conf=False)[source]
default_shed_tool_conf_dict()[source]

If set, returns the first shed_tool_conf_dict corresponding to shed_tool_config_file, else the first dynamic conf.

dynamic_conf_filenames(include_migrated_tool_conf=False)[source]

Return list of dynamic tool configuration filenames (shed_tools). These must be used with various dynamic tool configuration update operations (e.g. with update_shed_config).

get_tool_repository_from_xml_item(elem, path)[source]
load_tool(config_file, guid=None, tool_shed_repository=None, use_cached=False, **kwds)[source]

Load a single tool from the file named by config_file and return an instance of Tool.

watch_tool(tool)[source]
add_tool_to_cache(tool, config_file)[source]
load_tool_from_cache(config_file, recover_tool=False)[source]
load_hidden_lib_tool(path)[source]
load_hidden_tool(config_file, **kwds)[source]

Load a hidden tool (in this context meaning one that does not appear in the tool panel) and register it in _tools_by_id.

register_tool(tool)[source]
package_tool(trans, tool_id)[source]

Create a tarball with the tool’s xml, help images, and test data. :param trans: the web transaction :param tool_id: the tool ID from app.toolbox :returns: tuple of tarball filename, success True/False, message/None

reload_tool_by_id(tool_id)[source]

Attempt to reload the tool identified by ‘tool_id’, if successful replace the old tool.

remove_tool_by_id(tool_id, remove_from_panel=True)[source]

Attempt to remove the tool identified by ‘tool_id’. Ignores tool lineage - so to remove a tool with potentially multiple versions send remove_from_panel=False and handle the logic of promoting the next newest version of the tool into the panel if needed.

get_sections()[source]
find_section_id(tool_panel_section_id)[source]

Find the section ID referenced by the key or return ‘’ indicating no such section id.

tool_panel_contents(trans, **kwds)[source]

Filter tool_panel contents for displaying for user.

get_tool_to_dict(trans, tool)[source]

Return tool’s to_dict. Use cache if present, store to cache otherwise. Note: The cached tool’s to_dict is specific to the calls from toolbox.

to_dict(trans, in_panel=True, **kwds)[source]

Create a dictionary representation of the toolbox. Uses primitive cache for toolbox-specific tool ‘to_dict’s.

class galaxy.tools.toolbox.BaseGalaxyToolBox(config_filenames, tool_root_dir, app, save_integrated_tool_panel=True)[source]

Bases: galaxy.tools.toolbox.base.AbstractToolBox

Extend the AbstractToolBox with more Galaxy tooling-specific functionality. Adds dependencies on dependency resolution and tool loading modules, that an abstract description of panels shouldn’t really depend on.

__init__(config_filenames, tool_root_dir, app, save_integrated_tool_panel=True)[source]
sa_session

Returns a SQLAlchemy session

reload_dependency_manager()[source]
class galaxy.tools.toolbox.ToolSection(item=None)[source]

Bases: galaxy.util.dictifiable.Dictifiable, galaxy.tools.toolbox.panel.HasPanelItems

A group of tools with similar type/purpose that will be displayed as a group in the user interface.

dict_collection_visible_keys = ['id', 'name', 'version']
__init__(item=None)[source]

Build a ToolSection from an ElementTree element or a dictionary.

copy()[source]
to_dict(trans, link_details=False, toolbox=None)[source]

Return a dict that includes section’s attributes.

panel_items()[source]
class galaxy.tools.toolbox.ToolSectionLabel(item)[source]

Bases: galaxy.util.dictifiable.Dictifiable

A label for a set of tools that can be displayed above groups of tools and sections in the user interface

dict_collection_visible_keys = ['id', 'text', 'version']
__init__(item)[source]

Build a ToolSectionLabel from an ElementTree element or a dictionary.

to_dict(**kwds)[source]

Submodules

galaxy.tools.toolbox.base module

class galaxy.tools.toolbox.base.ToolConfRepository[source]

Bases: galaxy.tools.toolbox.base.ToolConfRepository

get_tool_relative_path(*args, **kwargs)[source]
class galaxy.tools.toolbox.base.AbstractToolBox(config_filenames, tool_root_dir, app, save_integrated_tool_panel=True)[source]

Bases: galaxy.util.dictifiable.Dictifiable, galaxy.tools.toolbox.integrated_panel.ManagesIntegratedToolPanelMixin

Abstract container for managing a ToolPanel - containing tools and workflows optionally in labelled sections.

__init__(config_filenames, tool_root_dir, app, save_integrated_tool_panel=True)[source]

Create a toolbox from the config files named by config_filenames, using tool_root_dir as the base directory for finding individual tool config files.

create_tool(config_file, tool_shed_repository=None, guid=None, **kwds)[source]
create_dynamic_tool(dynamic_tool)[source]
can_load_config_file(config_filename)[source]
load_dynamic_tool(dynamic_tool)[source]
load_item(item, tool_path, panel_dict=None, integrated_panel_dict=None, load_panel_dict=True, guid=None, index=None, internal=False)[source]
get_shed_config_dict_by_filename(filename)[source]
update_shed_config(shed_conf)[source]

Update the in-memory descriptions of tools and write out the changes to integrated tool panel unless we are just deactivating a tool (since that doesn’t affect that file).

get_section(section_id, new_label=None, create_if_needed=False)[source]
create_section(section_dict)[source]
get_integrated_section_for_tool(tool)[source]
get_tool(tool_id, tool_version=None, get_all_versions=False, exact=False, tool_uuid=None)[source]

Attempt to locate a tool in the tool box. Note that exact only refers to the tool_id, not the tool_version.

has_tool(tool_id, tool_version=None, exact=False)[source]
is_missing_shed_tool(tool_id)[source]

Confirm that the tool ID does reference a shed tool and is not installed.

get_tool_id(tool_id)[source]

Take a tool id - potentially from a different Galaxy instance or that is no longer loaded - and find the closest match to the currently loaded tools (using get_tool for inexact matches which currently returns the oldest tool shed installed tool with the same short id).

get_loaded_tools_by_lineage(tool_id)[source]

Get all loaded tools associated by lineage to the tool whose id is tool_id.

tools()[source]
dynamic_confs(include_migrated_tool_conf=False)[source]
default_shed_tool_conf_dict()[source]

If set, returns the first shed_tool_conf_dict corresponding to shed_tool_config_file, else the first dynamic conf.

dynamic_conf_filenames(include_migrated_tool_conf=False)[source]

Return list of dynamic tool configuration filenames (shed_tools). These must be used with various dynamic tool configuration update operations (e.g. with update_shed_config).

get_tool_repository_from_xml_item(elem, path)[source]
load_tool(config_file, guid=None, tool_shed_repository=None, use_cached=False, **kwds)[source]

Load a single tool from the file named by config_file and return an instance of Tool.

watch_tool(tool)[source]
add_tool_to_cache(tool, config_file)[source]
load_tool_from_cache(config_file, recover_tool=False)[source]
load_hidden_lib_tool(path)[source]
load_hidden_tool(config_file, **kwds)[source]

Load a hidden tool (in this context meaning one that does not appear in the tool panel) and register it in _tools_by_id.

register_tool(tool)[source]
package_tool(trans, tool_id)[source]

Create a tarball with the tool’s xml, help images, and test data. :param trans: the web transaction :param tool_id: the tool ID from app.toolbox :returns: tuple of tarball filename, success True/False, message/None

reload_tool_by_id(tool_id)[source]

Attempt to reload the tool identified by ‘tool_id’, if successful replace the old tool.

remove_tool_by_id(tool_id, remove_from_panel=True)[source]

Attempt to remove the tool identified by ‘tool_id’. Ignores tool lineage - so to remove a tool with potentially multiple versions send remove_from_panel=False and handle the logic of promoting the next newest version of the tool into the panel if needed.

get_sections()[source]
find_section_id(tool_panel_section_id)[source]

Find the section ID referenced by the key or return ‘’ indicating no such section id.

tool_panel_contents(trans, **kwds)[source]

Filter tool_panel contents for displaying for user.

get_tool_to_dict(trans, tool)[source]

Return tool’s to_dict. Use cache if present, store to cache otherwise. Note: The cached tool’s to_dict is specific to the calls from toolbox.

to_dict(trans, in_panel=True, **kwds)[source]

Create a dictionary representation of the toolbox. Uses primitive cache for toolbox-specific tool ‘to_dict’s.

class galaxy.tools.toolbox.base.BaseGalaxyToolBox(config_filenames, tool_root_dir, app, save_integrated_tool_panel=True)[source]

Bases: galaxy.tools.toolbox.base.AbstractToolBox

Extend the AbstractToolBox with more Galaxy tooling-specific functionality. Adds dependencies on dependency resolution and tool loading modules, that an abstract description of panels shouldn’t really depend on.

__init__(config_filenames, tool_root_dir, app, save_integrated_tool_panel=True)[source]
sa_session

Returns a SQLAlchemy session

reload_dependency_manager()[source]

galaxy.tools.toolbox.integrated_panel module

class galaxy.tools.toolbox.integrated_panel.ManagesIntegratedToolPanelMixin[source]

Bases: object

galaxy.tools.toolbox.panel module

class galaxy.tools.toolbox.panel.HasPanelItems[source]

Bases: object

panel_items()[source]

Return an ordered dictionary-like object describing tool panel items (such as workflows, tools, labels, and sections).

panel_items_iter()[source]

Iterate through panel items each represented as a tuple of (panel_key, panel_type, panel_content).

class galaxy.tools.toolbox.panel.ToolSection(item=None)[source]

Bases: galaxy.util.dictifiable.Dictifiable, galaxy.tools.toolbox.panel.HasPanelItems

A group of tools with similar type/purpose that will be displayed as a group in the user interface.

dict_collection_visible_keys = ['id', 'name', 'version']
__init__(item=None)[source]

Build a ToolSection from an ElementTree element or a dictionary.

copy()[source]
to_dict(trans, link_details=False, toolbox=None)[source]

Return a dict that includes section’s attributes.

panel_items()[source]
class galaxy.tools.toolbox.panel.ToolSectionLabel(item)[source]

Bases: galaxy.util.dictifiable.Dictifiable

A label for a set of tools that can be displayed above groups of tools and sections in the user interface

dict_collection_visible_keys = ['id', 'text', 'version']
__init__(item)[source]

Build a ToolSectionLabel from an ElementTree element or a dictionary.

to_dict(**kwds)[source]
class galaxy.tools.toolbox.panel.ToolPanelElements(dict=None)[source]

Bases: galaxy.util.odict.odict, galaxy.tools.toolbox.panel.HasPanelItems

Represents an ordered dictionary of tool entries - abstraction used both by tool panel itself (normal and integrated) and its sections.

update_or_append(index, key, value)[source]
get_label(label)[source]
has_tool_with_id(tool_id)[source]
replace_tool(previous_tool_id, new_tool_id, tool)[source]
index_of_tool_id(tool_id)[source]
insert_tool(index, tool)[source]
get_tool_with_id(tool_id)[source]
append_tool(tool)[source]
stub_tool(key)[source]
stub_workflow(key)[source]
stub_label(key)[source]
append_section(key, section_elems)[source]
panel_items()[source]

galaxy.tools.toolbox.parser module

This module is used to parse tool_conf files.

These files define tool lists, sections, labels, etc… the elements of the Galaxy tool panel.

galaxy.tools.toolbox.parser.ensure_tool_conf_item(xml_or_item)[source]
galaxy.tools.toolbox.parser.get_toolbox_parser(config_filename)[source]

galaxy.tools.toolbox.tags module

Handle details of tool tagging - perhaps a deprecated feature.

galaxy.tools.toolbox.tags.tool_tag_manager(app)[source]

Build a tool tag manager according to app’s configuration and return it.

class galaxy.tools.toolbox.tags.AbstractToolTagManager[source]

Bases: object

reset_tags()[source]

Starting to load tool panels, reset all tags.

handle_tags(tool_id, tool_definition_source)[source]

Parse out tags and persist them.

class galaxy.tools.toolbox.tags.NullToolTagManager[source]

Bases: galaxy.tools.toolbox.tags.AbstractToolTagManager

reset_tags()[source]
handle_tags(tool_id, tool_definition_source)[source]
class galaxy.tools.toolbox.tags.PersistentToolTagManager(app)[source]

Bases: galaxy.tools.toolbox.tags.AbstractToolTagManager

__init__(app)[source]
reset_tags()[source]
handle_tags(tool_id, tool_definition_source)[source]

galaxy.tools.toolbox.watcher module

galaxy.tools.toolbox.watcher.get_tool_conf_watcher(reload_callback, tool_cache=None)[source]
galaxy.tools.toolbox.watcher.get_tool_watcher(toolbox, config)[source]
class galaxy.tools.toolbox.watcher.ToolFileEventHandler(tool_watcher)[source]

Bases: watchdog.events.FileSystemEventHandler

__init__(tool_watcher)[source]
on_any_event(event)[source]
class galaxy.tools.toolbox.watcher.ToolConfWatcher(reload_callback, tool_cache=None)[source]

Bases: object

__init__(reload_callback, tool_cache=None)[source]
start()[source]
shutdown()[source]
check()[source]

Check for changes in self.paths or self.cache and call the event handler.

monitor(path)[source]
watch_file(tool_conf_file)[source]
class galaxy.tools.toolbox.watcher.ToolWatcher(observer_class, even_handler_class, toolbox)[source]

Bases: galaxy.util.watcher.BaseWatcher

__init__(observer_class, even_handler_class, toolbox)[source]
watch_file(tool_file, tool_id)[source]
watch_directory(tool_dir, callback)[source]