|
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