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.

Source code for tool_shed.util.common_util

from typing import (
    Optional,
    TYPE_CHECKING,
)

from routes import url_for

from galaxy.util.tool_shed.common_util import (
    accumulate_tool_dependencies,
    check_tool_tag_set,
    generate_clone_url_for_installed_repository,
    generate_clone_url_from_repo_info_tup,
    get_protocol_from_tool_shed_url,
    get_repository_dependencies,
    get_tool_shed_repository_ids,
    get_tool_shed_repository_url,
    get_tool_shed_url_from_tool_shed_registry,
    handle_galaxy_url,
    handle_tool_shed_url_protocol,
    parse_repository_dependency_tuple,
    remove_port_from_tool_shed_url,
    remove_protocol_and_port_from_tool_shed_url,
    remove_protocol_and_user_from_clone_url,
    remove_protocol_from_tool_shed_url,
)

if TYPE_CHECKING:
    from tool_shed.context import ProvidesRepositoriesContext
    from tool_shed.webapp.model import (
        Repository,
        User,
    )


def generate_clone_url_for(trans: "ProvidesRepositoriesContext", repository: "Repository") -> str:
    return generate_clone_url_for_repository_in_tool_shed(trans.user, repository, trans.repositories_hostname)


[docs]def generate_clone_url_for_repository_in_tool_shed( user: Optional["User"], repository: "Repository", hostname: Optional[str] = None ) -> str: """Generate the URL for cloning a repository that is in the tool shed.""" base_url = hostname or url_for("/", qualified=True).rstrip("/") return f"{base_url}/repos/{repository.user.username}/{repository.name}"
__all__ = ( "accumulate_tool_dependencies", "check_tool_tag_set", "generate_clone_url_for_installed_repository", "generate_clone_url_for_repository_in_tool_shed", "generate_clone_url_from_repo_info_tup", "get_repository_dependencies", "get_protocol_from_tool_shed_url", "get_tool_shed_repository_ids", "get_tool_shed_url_from_tool_shed_registry", "get_tool_shed_repository_url", "handle_galaxy_url", "handle_tool_shed_url_protocol", "parse_repository_dependency_tuple", "remove_port_from_tool_shed_url", "remove_protocol_and_port_from_tool_shed_url", "remove_protocol_and_user_from_clone_url", "remove_protocol_from_tool_shed_url", )