Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/planemo/deps.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/planemo/deps.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -import tempfile -from string import Template - -import click -from six import iteritems - -from planemo.conda import build_conda_context - -CONDA_DEPENDENCY_RESOLUTION_CONF = """<dependency_resolvers> - <conda ${attributes} /> - <conda versionless="true" ${attributes} /> -</dependency_resolvers> -""" - -# Like Conda resolution above, but allow tool shed packages to be used for -# shed_serve and shed_test. -DEFAULT_DEPENDENCY_RESOLUTION_CONF = """<dependency_resolvers> - <tool_shed_packages /> - <conda ${attributes} /> - <conda versionless="true" ${attributes} /> -</dependency_resolvers> -""" - -NO_DEPENDENCY_RESOLUTION_CONF = """<dependency_resolvers> -</dependency_resolvers> -""" - -BREW_DEPENDENCY_RESOLUTION_CONF = """<dependency_resolvers> - <homebrew /> - <!-- - <homebrew versionless="true" /> - --> -</dependency_resolvers> -""" - -SHED_DEPENDENCY_RESOLUTION_CONF = """<dependency_resolvers> - <tool_shed_tap /> -</dependency_resolvers> -""" - -# Provide some shortcuts for simple/common dependency resolutions strategies. -STOCK_DEPENDENCY_RESOLUTION_STRATEGIES = { - "brew_dependency_resolution": BREW_DEPENDENCY_RESOLUTION_CONF, - "shed_dependency_resolution": SHED_DEPENDENCY_RESOLUTION_CONF, - "conda_dependency_resolution": CONDA_DEPENDENCY_RESOLUTION_CONF, - "no_dependency_resolution": NO_DEPENDENCY_RESOLUTION_CONF, - "default_dependency_resolution": DEFAULT_DEPENDENCY_RESOLUTION_CONF, -} - - -def ensure_dependency_resolvers_conf_configured(ctx, kwds, resolvers_conf=None): - """Use supplied CLI options (kwds) to find or build a dependency resolvers file. - - Set new path in kwds if needed. - """ - _validate_dependency_resolution_options(kwds) - always_specify_attribute = object() - - dependency_attribute_kwds = { - 'conda_prefix': None, - 'conda_exec': None, - 'conda_debug': False, - 'conda_copy_dependencies': False, - 'conda_auto_init': always_specify_attribute, - 'conda_auto_install': always_specify_attribute, - 'conda_ensure_channels': '', - 'conda_use_local': False, - } - attributes = [] - - def add_attribute(key, value): - attributes.append('%s="%s"' % (key, value)) - - conda_prefix_specified = False - for key, default_value in iteritems(dependency_attribute_kwds): - value = kwds.get(key, default_value) - if value != default_value: - conda_prefix_specified = conda_prefix_specified or (key == "conda_prefix") - # Strip leading prefix (conda_) off attributes - attribute_key = "_".join(key.split("_")[1:]) - add_attribute(attribute_key, value) - - conda_context = build_conda_context(ctx, **kwds) - if not conda_prefix_specified: - add_attribute("prefix", conda_context.conda_prefix) - add_attribute("condarc_override", conda_context.condarc_override) - - attribute_str = " ".join(attributes) - - if kwds.get("dependency_resolvers_config_file", None): - resolution_type = "__explicit__" - else: - resolution_type = "default_dependency_resolution" - for key in STOCK_DEPENDENCY_RESOLUTION_STRATEGIES: - if kwds.get(key): - resolution_type = key - - if resolution_type != "__explicit__": - # Planemo manages the dependency resolve conf file. - template_str = STOCK_DEPENDENCY_RESOLUTION_STRATEGIES[resolution_type] - conf_contents = Template(template_str).safe_substitute({ - 'attributes': attribute_str - }) - if resolvers_conf is None: - resolvers_conf = tempfile.NamedTemporaryFile(delete=False).name - with open(resolvers_conf, "w") as fh: - fh.write(conf_contents) - ctx.vlog( - "Writing dependency_resolvers_config_file to path %s with contents [%s]", - resolvers_conf, - conf_contents, - ) - kwds["dependency_resolvers_config_file"] = resolvers_conf - - -def _validate_dependency_resolution_options(kwds): - resolutions_strategies = [ - "brew_dependency_resolution", - "dependency_resolvers_config_file", - "shed_dependency_resolution", - "conda_dependency_resolution", - ] - - selected_strategies = 0 - for key in resolutions_strategies: - if kwds.get(key): - selected_strategies += 1 - - if selected_strategies > 1: - message = "At most one option from [%s] may be specified" - raise click.UsageError(message % resolutions_strategies)