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_util.deps.resolvers.tool_shed_packages

from os.path import abspath, exists, join

from . import NullDependency
from .galaxy_packages import (
    BaseGalaxyPackageDependencyResolver,
    ToolShedDependency
)
from .resolver_mixins import UsesInstalledRepositoriesMixin


[docs]class ToolShedPackageDependencyResolver(BaseGalaxyPackageDependencyResolver, UsesInstalledRepositoriesMixin): resolver_type = "tool_shed_packages" # Resolution of these dependencies depends on more than just the requirement # tag, it depends on the tool installation context - therefore these are # non-simple. dependency_type = ToolShedDependency resolves_simple_dependencies = False
[docs] def __init__(self, dependency_manager, **kwds): super().__init__(dependency_manager, **kwds)
def _find_dep_versioned(self, name, version, type='package', **kwds): installed_tool_dependency = self._get_installed_dependency(name, type, version=version, **kwds) if installed_tool_dependency: path = self._get_package_installed_dependency_path(installed_tool_dependency, name, version) return self._galaxy_package_dep(path, version, name, type, True) else: return NullDependency(version=version, name=name) def _find_dep_default(self, name, type='package', **kwds): if type == 'set_environment' and kwds.get('installed_tool_dependencies', None): installed_tool_dependency = self._get_installed_dependency(name, type, version=None, **kwds) if installed_tool_dependency: dependency = self._get_set_environment_installed_dependency_script_path(installed_tool_dependency, name) is_galaxy_dep = isinstance(dependency, ToolShedDependency) has_script_dep = is_galaxy_dep and dependency.script and dependency.path if has_script_dep: # Environment settings do not use versions. return ToolShedDependency(dependency.script, dependency.path, name, 'set_environment', None, True, dependency_resolver=self) return NullDependency(version=None, name=name) def _get_package_installed_dependency_path(self, installed_tool_dependency, name, version): tool_shed_repository = installed_tool_dependency.tool_shed_repository base_path = self.base_path return join( base_path, name, version, tool_shed_repository.owner, tool_shed_repository.name, tool_shed_repository.installed_changeset_revision ) def _get_set_environment_installed_dependency_script_path(self, installed_tool_dependency, name): tool_shed_repository = installed_tool_dependency.tool_shed_repository base_path = self.base_path path = abspath(join(base_path, 'environment_settings', name, tool_shed_repository.owner, tool_shed_repository.name, tool_shed_repository.installed_changeset_revision)) if exists(path): script = join(path, 'env.sh') return ToolShedDependency(script, path, name, 'set_environment', None, True, dependency_resolver=self) return NullDependency(version=None, name=name)
__all__ = ('ToolShedPackageDependencyResolver', )