Warning

This document is for an old release 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.

Source code for galaxy.tool_shed.util.container_util

import logging

from galaxy.util.tool_shed.common_util import remove_protocol_from_tool_shed_url

log = logging.getLogger(__name__)

# String separator
STRSEP = '__ESEP__'


[docs]def generate_repository_dependencies_key_for_repository(toolshed_base_url, repository_name, repository_owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td): """ Assumes tool shed is current tool shed since repository dependencies across tool sheds is not yet supported. """ # The tool_shed portion of the key must be the value that is stored in the tool_shed_repository.tool_shed column # of the Galaxy database for an installed repository. This value does not include the protocol, but does include # the port if there is one. tool_shed = remove_protocol_from_tool_shed_url(toolshed_base_url) return '{}{}{}{}{}{}{}{}{}{}{}'.format(tool_shed, STRSEP, str(repository_name), STRSEP, str(repository_owner), STRSEP, str(changeset_revision), STRSEP, str(prior_installation_required), STRSEP, str(only_if_compiling_contained_td))
[docs]def get_components_from_key(key): """ Assumes tool shed is current tool shed since repository dependencies across tool sheds is not yet supported. """ items = key.split(STRSEP) toolshed_base_url = items[0] repository_name = items[1] repository_owner = items[2] changeset_revision = items[3] if len(items) == 5: prior_installation_required = items[4] return toolshed_base_url, repository_name, repository_owner, changeset_revision, prior_installation_required elif len(items) == 6: prior_installation_required = items[4] only_if_compiling_contained_td = items[5] return toolshed_base_url, repository_name, repository_owner, \ changeset_revision, prior_installation_required, \ only_if_compiling_contained_td else: # For backward compatibility to the 12/20/12 Galaxy release we have to return the following, and callers # must handle exceptions. return toolshed_base_url, repository_name, repository_owner, changeset_revision