diff env/lib/python3.7/site-packages/planemo/commands/cmd_mull.py @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/env/lib/python3.7/site-packages/planemo/commands/cmd_mull.py	Sat May 02 07:14:21 2020 -0400
@@ -0,0 +1,32 @@
+"""Module describing the planemo ``mull`` command."""
+import click
+from galaxy.tool_util.deps.mulled.mulled_build import mull_targets
+
+from planemo import options
+from planemo.cli import command_function
+from planemo.mulled import build_mull_target_kwds, collect_mulled_target_lists
+
+
+@click.command('mull')
+@options.optional_tools_arg(multiple=True)
+@options.recursive_option()
+@options.mulled_options()
+@options.conda_ensure_channels_option()
+@command_function
+def cli(ctx, paths, **kwds):
+    """Build containers for specified tools.
+
+    Supplied tools will be inspected for referenced requirement packages. For
+    each combination of requirements a "mulled" container will be built. Galaxy
+    can automatically discover this container and subsequently use it to run
+    or test the tool.
+
+    For this to work, the tool's requirements will need to be present in a known
+    Conda channel such as bioconda (https://github.com/bioconda/bioconda-recipes).
+    This can be verified by running ``planemo lint --conda_requirements`` on the
+    target tool(s).
+    """
+    for mulled_targets in collect_mulled_target_lists(ctx, paths, recursive=kwds["recursive"]):
+        mull_target_kwds = build_mull_target_kwds(ctx, **kwds)
+        command = kwds["mulled_command"]
+        mull_targets(mulled_targets, command=command, **mull_target_kwds)