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.tool_util.deps.container_resolvers package

The module defines the abstract interface for resolving container images for tool execution.

class galaxy.tool_util.deps.container_resolvers.ResolutionCache(**kwds)[source]

Bases: galaxy.util.bunch.Bunch

Simple cache for duplicated computation created once per set of requests (likely web request in Galaxy context).

This should not be assumed to be thread safe - resolution using a given cache should all occur one resolution at a time in a single thread.

class galaxy.tool_util.deps.container_resolvers.ContainerResolver(app_info=None, **kwds)[source]

Bases: galaxy.util.dictifiable.Dictifiable

Description of a technique for resolving container images for tool execution.

dict_collection_visible_keys = ['resolver_type', 'can_uninstall_dependencies', 'builds_on_resolution']
can_uninstall_dependencies = False
builds_on_resolution = False
__init__(app_info=None, **kwds)[source]

Default initializer for ContainerResolver subclasses.

resolve(enabled_container_types, tool_info, resolution_cache=None, **kwds)[source]

Find a container matching all supplied requirements for tool.

The supplied argument is a galaxy.tool_util.deps.containers.ToolInfo description of the tool and its requirements.

resolver_type

Short label for the type of container resolution.

Submodules

galaxy.tool_util.deps.container_resolvers.explicit module

This module describes the ExplicitContainerResolver ContainerResolver plugin.

class galaxy.tool_util.deps.container_resolvers.explicit.ExplicitContainerResolver(app_info=None, **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.ContainerResolver

Find explicit containers referenced in the tool description (e.g. tool XML file) if present.

resolver_type = 'explicit'
resolve(enabled_container_types, tool_info, **kwds)[source]

Find a container explicitly mentioned in tool description.

This ignores the tool requirements and assumes the tool author crafted a correct container.

class galaxy.tool_util.deps.container_resolvers.explicit.ExplicitSingularityContainerResolver(app_info=None, **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.explicit.ExplicitContainerResolver

resolver_type = 'explicit_singularity'
container_type = 'singularity'
resolve(enabled_container_types, tool_info, **kwds)[source]

Find a container explicitly mentioned in tool description.

This ignores the tool requirements and assumes the tool author crafted a correct container. We use singularity here to fetch docker containers, hence the container_description hack here.

class galaxy.tool_util.deps.container_resolvers.explicit.FallbackContainerResolver(app_info=None, identifier='', **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.explicit.BaseAdminConfiguredContainerResolver

Specify an explicit, identified container as a Docker container resolver.

resolver_type = 'fallback'
container_type = 'docker'
__init__(app_info=None, identifier='', **kwds)[source]
resolve(enabled_container_types, tool_info, **kwds)[source]
class galaxy.tool_util.deps.container_resolvers.explicit.FallbackSingularityContainerResolver(app_info=None, identifier='', **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.explicit.FallbackContainerResolver

Specify an explicit, identified container as a Singularity container resolver.

resolver_type = 'fallback_singularity'
container_type = 'singularity'
class galaxy.tool_util.deps.container_resolvers.explicit.FallbackNoRequirementsContainerResolver(app_info=None, identifier='', **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.explicit.FallbackContainerResolver

resolver_type = 'fallback_no_requirements'
class galaxy.tool_util.deps.container_resolvers.explicit.FallbackNoRequirementsSingularityContainerResolver(app_info=None, identifier='', **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.explicit.FallbackNoRequirementsContainerResolver

resolver_type = 'fallback_no_requirements_singularity'
container_type = 'singularity'
class galaxy.tool_util.deps.container_resolvers.explicit.RequiresGalaxyEnvironmentContainerResolver(app_info=None, identifier='', **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.explicit.FallbackContainerResolver

resolver_type = 'requires_galaxy_environment'
class galaxy.tool_util.deps.container_resolvers.explicit.RequiresGalaxyEnvironmentSingularityContainerResolver(app_info=None, identifier='', **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.explicit.RequiresGalaxyEnvironmentContainerResolver

resolver_type = 'requires_galaxy_environment_singularity'
container_type = 'singularity'
class galaxy.tool_util.deps.container_resolvers.explicit.MappingContainerResolver(app_info=None, **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.explicit.BaseAdminConfiguredContainerResolver

resolver_type = 'mapping'
__init__(app_info=None, **kwds)[source]
resolve(enabled_container_types, tool_info, **kwds)[source]

galaxy.tool_util.deps.container_resolvers.mulled module

This module describes the MulledContainerResolver ContainerResolver plugin.

class galaxy.tool_util.deps.container_resolvers.mulled.CachedMulledDockerContainerResolver(app_info=None, namespace='biocontainers', hash_func='v2', **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.ContainerResolver

resolver_type = 'cached_mulled'
container_type = 'docker'
shell = '/bin/bash'
__init__(app_info=None, namespace='biocontainers', hash_func='v2', **kwds)[source]
resolve(enabled_container_types, tool_info, **kwds)[source]
class galaxy.tool_util.deps.container_resolvers.mulled.CachedMulledSingularityContainerResolver(app_info=None, hash_func='v2', **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.ContainerResolver

resolver_type = 'cached_mulled_singularity'
container_type = 'singularity'
shell = '/bin/bash'
__init__(app_info=None, hash_func='v2', **kwds)[source]
resolve(enabled_container_types, tool_info, **kwds)[source]
class galaxy.tool_util.deps.container_resolvers.mulled.MulledDockerContainerResolver(app_info=None, namespace='biocontainers', hash_func='v2', auto_install=True, **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.ContainerResolver

Look for mulled images matching tool dependencies.

resolver_type = 'mulled'
container_type = 'docker'
shell = '/bin/bash'
protocol = None
__init__(app_info=None, namespace='biocontainers', hash_func='v2', auto_install=True, **kwds)[source]
cached_container_description(targets, namespace, hash_func, resolution_cache)[source]
pull(container)[source]
resolve(enabled_container_types, tool_info, install=False, **kwds)[source]
class galaxy.tool_util.deps.container_resolvers.mulled.MulledSingularityContainerResolver(app_info=None, namespace='biocontainers', hash_func='v2', auto_install=True, **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.mulled.MulledDockerContainerResolver

resolver_type = 'mulled_singularity'
container_type = 'singularity'
protocol = 'docker://'
__init__(app_info=None, namespace='biocontainers', hash_func='v2', auto_install=True, **kwds)[source]
cached_container_description(targets, namespace, hash_func)[source]
pull(container)[source]
class galaxy.tool_util.deps.container_resolvers.mulled.BuildMulledDockerContainerResolver(app_info=None, namespace='local', hash_func='v2', auto_install=True, **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.ContainerResolver

Build for Docker mulled images matching tool dependencies.

resolver_type = 'build_mulled'
container_type = 'docker'
shell = '/bin/bash'
builds_on_resolution = True
__init__(app_info=None, namespace='local', hash_func='v2', auto_install=True, **kwds)[source]
resolve(enabled_container_types, tool_info, install=False, **kwds)[source]
class galaxy.tool_util.deps.container_resolvers.mulled.BuildMulledSingularityContainerResolver(app_info=None, hash_func='v2', auto_install=True, **kwds)[source]

Bases: galaxy.tool_util.deps.container_resolvers.ContainerResolver

Build for Singularity mulled images matching tool dependencies.

resolver_type = 'build_mulled_singularity'
container_type = 'singularity'
shell = '/bin/bash'
builds_on_resolution = True
__init__(app_info=None, hash_func='v2', auto_install=True, **kwds)[source]
resolve(enabled_container_types, tool_info, install=False, **kwds)[source]