|
8 | 8 | """ |
9 | 9 |
|
10 | 10 | import argparse |
| 11 | +import importlib.metadata |
11 | 12 | import os |
12 | 13 | import string |
13 | 14 | from collections.abc import MutableMapping, MutableSequence |
|
16 | 17 | from .utils import HasReqsHints |
17 | 18 |
|
18 | 19 | if TYPE_CHECKING: |
| 20 | + from galaxy.tool_util.deps.requirements import ToolRequirements |
| 21 | + |
19 | 22 | from .builder import Builder |
20 | 23 |
|
21 | 24 | try: |
22 | | - from galaxy.tool_util import deps |
23 | | - from galaxy.tool_util.deps.requirements import ToolRequirement, ToolRequirements |
24 | | -except ImportError: |
25 | | - ToolRequirement = None # type: ignore |
26 | | - ToolRequirements = None # type: ignore |
27 | | - deps = None # type: ignore |
28 | | - |
29 | | - |
30 | | -SOFTWARE_REQUIREMENTS_ENABLED = deps is not None |
| 25 | + importlib.metadata.Distribution.from_name("galaxy-tool-util") |
| 26 | + SOFTWARE_REQUIREMENTS_ENABLED = True |
| 27 | +except ModuleNotFoundError: |
| 28 | + SOFTWARE_REQUIREMENTS_ENABLED = False |
31 | 29 |
|
32 | 30 | COMMAND_WITH_DEPENDENCIES_TEMPLATE = string.Template( |
33 | 31 | """#!/bin/bash |
@@ -74,6 +72,8 @@ def __init__(self, args: argparse.Namespace) -> None: |
74 | 72 |
|
75 | 73 | def build_job_script(self, builder: "Builder", command: list[str]) -> str: |
76 | 74 | """Use the galaxy-tool-util library to construct a build script.""" |
| 75 | + from galaxy.tool_util import deps |
| 76 | + |
77 | 77 | ensure_galaxy_lib_available() |
78 | 78 | resolution_config_dict = { |
79 | 79 | "use": self.use_tool_dependencies, |
@@ -102,8 +102,12 @@ def build_job_script(self, builder: "Builder", command: list[str]) -> str: |
102 | 102 | return job_script |
103 | 103 |
|
104 | 104 |
|
105 | | -def get_dependencies(builder: HasReqsHints) -> ToolRequirements: |
| 105 | +def get_dependencies( |
| 106 | + builder: HasReqsHints, |
| 107 | +) -> "ToolRequirements": |
106 | 108 | (software_requirement, _) = builder.get_requirement("SoftwareRequirement") |
| 109 | + from galaxy.tool_util.deps.requirements import ToolRequirement, ToolRequirements |
| 110 | + |
107 | 111 | dependencies: list[Union["ToolRequirement", dict[str, Any]]] = [] |
108 | 112 | if software_requirement and software_requirement.get("packages"): |
109 | 113 | packages = cast( |
|
0 commit comments