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 galaxy.tool_util.deps.resolvers.unlinked_tool_shed_packages
""" Backup resolvers for when dependencies can not be loaded from the database. Mainly suited for testing stage. Ideally all dependencies will be stored in the database when a tool is added from a Tool Shed. That should remain the preferred way of locating dependencies. In cases where that is not possible for example during testing this resolver can act as a backup. This resolver looks not just for manually added dependencies but also ones added from a Tool Shed. This tool is still under development so the default behaviour could change. It has been tested when placed in the same directory as galaxy_packages.py At the time of writing July 3 2015 this resolver has to be plugged in. See bottom for instructions on how to add this resolver. """ import logging from os import listdir from os.path import ( exists, getmtime, join ) from . import ( Dependency, NullDependency ) from .galaxy_packages import BaseGalaxyPackageDependencyResolver log = logging.getLogger(__name__) MANUAL = "manual" PREFERRED_OWNERS = MANUAL + ",iuc,devteam" class CandidateDependency(Dependency): dict_collection_visible_keys = Dependency.dict_collection_visible_keys + ['dependency', 'path', 'owner'] dependency_type = 'unlinked_tool_shed_package' @property def exact(self): return self.dependency.exact def __init__(self, dependency, path, owner=MANUAL): self.dependency = dependency self.path = path self.owner = owner def shell_commands(self): """ Return shell commands to enable this dependency. """ return self.dependency.shell_commands() __all__ = ('UnlinkedToolShedPackageDependencyResolver', ) """ At the time of writing July 3 2015 this resolver has to be plugged in. Adding resolver instructions: 1. create a dependency_resolvers_config.xml file <dependency_resolvers> <tool_shed_packages /> <galaxy_packages /> <galaxy_packages versionless="true" /> <unlinked_tool_shed_packages /> </dependency_resolvers> 1a. ALWAYS add <tool_shed_packages /> first!!!! 1b. <galaxy_packages /> is optional as this resolver will also find dependency found by that resolver 1bi Current default is to use a dependency to find that way first! 1bii So an alternative version of dependency_resolvers_config.xml <dependency_resolvers> <tool_shed_packages /> <unlinked_tool_shed_packages /> <unlinked_tool_shed_packages versionless="true" /> </dependency_resolvers> 1c. See __init__ for optional config values 1ci versionless currently is handled by the super class GalaxyPackageDependencyResolver 2. Add a parameter to config.ini dependency_resolvers_config_file = ./config/dependency_resolvers_config.xml 2a. File name/path can be different 2b. config key must be dependency_resolvers_config_file 3. For planemo it may be required to specify: --dependency_resolvers_config_file (xml file described in 1 above) --tool_dependency_dir (root of dependencies typically galaxy/dependency_dir) See planemo test --help for more information """