Skip to content

Commit af08264

Browse files
authored
Merge pull request #459 from jmchilton/deps_help_refactor
Polish help and error messages related to optional dependency on galaxy-lib.
2 parents e9c6a38 + 8c2d8d0 commit af08264

File tree

2 files changed

+26
-16
lines changed

2 files changed

+26
-16
lines changed

cwltool/main.py

+16-9
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
relocateOutputs, scandeps, shortname, use_custom_schema,
3434
use_standard_schema)
3535
from .resolver import ga4gh_tool_registries, tool_resolver
36-
from .software_requirements import DependenciesConfiguration, get_container_from_software_requirements
36+
from .software_requirements import DependenciesConfiguration, get_container_from_software_requirements, SOFTWARE_REQUIREMENTS_ENABLED
3737
from .stdfsaccess import StdFsAccess
3838
from .update import ALLUPDATES, UPDATES
3939

@@ -153,14 +153,21 @@ def arg_parser(): # type: () -> argparse.ArgumentParser
153153
exgroup.add_argument("--quiet", action="store_true", help="Only print warnings and errors.")
154154
exgroup.add_argument("--debug", action="store_true", help="Print even more logging")
155155

156-
# help="Dependency resolver configuration file describing how to adapt 'SoftwareRequirement' packages to current system."
157-
parser.add_argument("--beta-dependency-resolvers-configuration", default=None, help=argparse.SUPPRESS)
158-
# help="Defaut root directory used by dependency resolvers configuration."
159-
parser.add_argument("--beta-dependencies-directory", default=None, help=argparse.SUPPRESS)
160-
# help="Use biocontainers for tools without an explicitly annotated Docker container."
161-
parser.add_argument("--beta-use-biocontainers", default=None, help=argparse.SUPPRESS, action="store_true")
162-
# help="Short cut to use Conda to resolve 'SoftwareRequirement' packages."
163-
parser.add_argument("--beta-conda-dependencies", default=None, help=argparse.SUPPRESS, action="store_true")
156+
dependency_resolvers_configuration_help = argparse.SUPPRESS
157+
dependencies_directory_help = argparse.SUPPRESS
158+
use_biocontainers_help = argparse.SUPPRESS
159+
conda_dependencies = argparse.SUPPRESS
160+
161+
if SOFTWARE_REQUIREMENTS_ENABLED:
162+
dependency_resolvers_configuration_help = "Dependency resolver configuration file describing how to adapt 'SoftwareRequirement' packages to current system."
163+
dependencies_directory_help = "Defaut root directory used by dependency resolvers configuration."
164+
use_biocontainers_help = "Use biocontainers for tools without an explicitly annotated Docker container."
165+
conda_dependencies = "Short cut to use Conda to resolve 'SoftwareRequirement' packages."
166+
167+
parser.add_argument("--beta-dependency-resolvers-configuration", default=None, help=dependency_resolvers_configuration_help)
168+
parser.add_argument("--beta-dependencies-directory", default=None, help=dependencies_directory_help)
169+
parser.add_argument("--beta-use-biocontainers", default=None, help=use_biocontainers_help, action="store_true")
170+
parser.add_argument("--beta-conda-dependencies", default=None, help=conda_dependencies, action="store_true")
164171

165172
parser.add_argument("--tool-help", action="store_true", help="Print command line help for tool")
166173

cwltool/software_requirements.py

+10-7
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
from .utils import get_feature
2424

25+
SOFTWARE_REQUIREMENTS_ENABLED = deps is not None
2526

2627
COMMAND_WITH_DEPENDENCIES_TEMPLATE = string.Template("""#!/bin/bash
2728
$handle_dependencies
@@ -60,8 +61,7 @@ def config_dict(self):
6061

6162
def build_job_script(self, builder, command):
6263
# type: (Any, List[str]) -> Text
63-
if deps is None:
64-
raise Exception("galaxy-lib not found")
64+
ensure_galaxy_lib_available()
6565
tool_dependency_manager = deps.build_dependency_manager(self) # type: deps.DependencyManager
6666
dependencies = get_dependencies(builder)
6767
handle_dependencies = "" # str
@@ -99,11 +99,8 @@ def get_dependencies(builder):
9999

100100
def get_container_from_software_requirements(args, builder):
101101
if args.beta_use_biocontainers:
102-
try:
103-
from galaxy.tools.deps.containers import ContainerRegistry, AppInfo, ToolInfo, DOCKER_CONTAINER_TYPE
104-
except ImportError:
105-
raise Exception("Optional requirement galaxy-lib not found, it is required for this configuration.")
106-
102+
ensure_galaxy_lib_available()
103+
from galaxy.tools.deps.containers import ContainerRegistry, AppInfo, ToolInfo, DOCKER_CONTAINER_TYPE
107104
app_info = AppInfo(
108105
involucro_auto_init=True,
109106
enable_beta_mulled_containers=True,
@@ -117,3 +114,9 @@ def get_container_from_software_requirements(args, builder):
117114
return container_description.identifier
118115

119116
return None
117+
118+
119+
def ensure_galaxy_lib_available():
120+
# type: () -> None
121+
if not SOFTWARE_REQUIREMENTS_ENABLED:
122+
raise Exception("Optional Python library galaxy-lib not available, it is required for this configuration.")

0 commit comments

Comments
 (0)