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.mulled package

Submodules

galaxy.tool_util.deps.mulled.mulled_build module

Build a mulled image for specified conda targets.

Examples

Build a mulled image with:

mulled-build build ‘samtools=1.3.1–4,bedtools=2.22’
galaxy.tool_util.deps.mulled.mulled_build.main(argv=None)[source]

Main entry-point for the CLI tool.

galaxy.tool_util.deps.mulled.mulled_build_channel module

Build a mulled images for all recent conda recipe updates that don’t have existing images.

Examples:

Build mulled images for recent bioconda changes with:

mulled-build-channel build

Build, test, and publish images with the follow command:

mulled-build-channel all

See recent changes that would be built with:

mulled-build-channel list
galaxy.tool_util.deps.mulled.mulled_build_channel.main(argv=None)[source]

Main entry-point for the CLI tool.

galaxy.tool_util.deps.mulled.mulled_build_files module

Build all composite mulled recipes discovered in TSV files.

Use mulled-build-channel to build images for single recipes for a whole conda channel. This script instead builds images for combinations of recipes. This script can be given a single TSV file or a directory of TSV files to process.

Examples:

Build all recipes discovered in tsv files in a single directory.

mulled-build-files build
galaxy.tool_util.deps.mulled.mulled_build_files.main(argv=None)[source]

Main entry-point for the CLI tool.

galaxy.tool_util.deps.mulled.mulled_build_tool module

Build a mulled images for a tool source (Galaxy or CWL tool).

Examples:

Build mulled images for requirements defined in a tool:

mulled-build-tool build path/to/tool_file.xml
galaxy.tool_util.deps.mulled.mulled_build_tool.main(argv=None)[source]

Main entry-point for the CLI tool.

galaxy.tool_util.deps.mulled.mulled_build_tool.requirements_to_mulled_targets(requirements)[source]

Convert Galaxy’s representation of requirements into mulled Target objects.

Only package requirements are retained.

galaxy.tool_util.deps.mulled.util module

Utilities for working with mulled abstractions outside the mulled package.

galaxy.tool_util.deps.mulled.util.quay_versions(namespace, pkg_name)[source]

Get all version tags for a Docker image stored on quay.io for supplied package name.

galaxy.tool_util.deps.mulled.util.mulled_tags_for(namespace, image, tag_prefix=None)[source]

Fetch remote tags available for supplied image name.

The result will be sorted so newest tags are first.

galaxy.tool_util.deps.mulled.util.split_tag(tag)[source]

Split mulled image name into conda version and conda build.

galaxy.tool_util.deps.mulled.util.version_sorted(elements)[source]

Sort iterable based on loose description of “version” from newest to oldest.

class galaxy.tool_util.deps.mulled.util.Target(package_name, version, build)

Bases: tuple

build

Alias for field number 2

package_name

Alias for field number 0

version

Alias for field number 1

galaxy.tool_util.deps.mulled.util.build_target(package_name, version=None, build=None, tag=None)[source]

Use supplied arguments to build a Target object.

galaxy.tool_util.deps.mulled.util.conda_build_target_str(target)[source]
galaxy.tool_util.deps.mulled.util.v1_image_name(targets, image_build=None, name_override=None)[source]

Generate mulled hash version 1 container identifier for supplied arguments.

If a single target is specified, simply use the supplied name and version as the repository name and tag respectively. If multiple targets are supplied, hash the package names and versions together as the repository name. For mulled version 1 containers the image build is the repository tag (if supplied).

>>> single_targets = [build_target("samtools", version="1.3.1")]
>>> v1_image_name(single_targets)
'samtools:1.3.1'
>>> multi_targets = [build_target("samtools", version="1.3.1"), build_target("bwa", version="0.7.13")]
>>> v1_image_name(multi_targets)
'mulled-v1-b06ecbd9141f0dbbc0c287375fc0813adfcbdfbd'
>>> multi_targets_on_versionless = [build_target("samtools", version="1.3.1"), build_target("bwa")]
>>> v1_image_name(multi_targets_on_versionless)
'mulled-v1-bda945976caa5734347fbf7f35066d9f58519e0c'
>>> multi_targets_versionless = [build_target("samtools"), build_target("bwa")]
>>> v1_image_name(multi_targets_versionless)
'mulled-v1-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40'
galaxy.tool_util.deps.mulled.util.v2_image_name(targets, image_build=None, name_override=None)[source]

Generate mulled hash version 2 container identifier for supplied arguments.

If a single target is specified, simply use the supplied name and version as the repository name and tag respectively. If multiple targets are supplied, hash the package names as the repository name and hash the package versions (if set) as the tag.

>>> single_targets = [build_target("samtools", version="1.3.1")]
>>> v2_image_name(single_targets)
'samtools:1.3.1'
>>> multi_targets = [build_target("samtools", version="1.3.1"), build_target("bwa", version="0.7.13")]
>>> v2_image_name(multi_targets)
'mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:4d0535c94ef45be8459f429561f0894c3fe0ebcf'
>>> multi_targets_on_versionless = [build_target("samtools", version="1.3.1"), build_target("bwa")]
>>> v2_image_name(multi_targets_on_versionless)
'mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:b0c847e4fb89c343b04036e33b2daa19c4152cf5'
>>> multi_targets_versionless = [build_target("samtools"), build_target("bwa")]
>>> v2_image_name(multi_targets_versionless)
'mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40'
galaxy.tool_util.deps.mulled.util.image_name(targets, image_build=None, name_override=None)

Generate mulled hash version 1 container identifier for supplied arguments.

If a single target is specified, simply use the supplied name and version as the repository name and tag respectively. If multiple targets are supplied, hash the package names and versions together as the repository name. For mulled version 1 containers the image build is the repository tag (if supplied).

>>> single_targets = [build_target("samtools", version="1.3.1")]
>>> v1_image_name(single_targets)
'samtools:1.3.1'
>>> multi_targets = [build_target("samtools", version="1.3.1"), build_target("bwa", version="0.7.13")]
>>> v1_image_name(multi_targets)
'mulled-v1-b06ecbd9141f0dbbc0c287375fc0813adfcbdfbd'
>>> multi_targets_on_versionless = [build_target("samtools", version="1.3.1"), build_target("bwa")]
>>> v1_image_name(multi_targets_on_versionless)
'mulled-v1-bda945976caa5734347fbf7f35066d9f58519e0c'
>>> multi_targets_versionless = [build_target("samtools"), build_target("bwa")]
>>> v1_image_name(multi_targets_versionless)
'mulled-v1-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40'