From 939e7774a8dbf78442afa0bbaaf023fbebfc3ba3 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 13 May 2019 14:57:45 -0400 Subject: [PATCH] Create galaxy-tool-util package. This is (so far a subset of) the tool utilities from galaxy-lib. galaxy-lib mocked out a fake galaxy.tools to allow these to all exist below the galaxy.tools - but this was a terrible hack - in order for the new packages to be true subsets of Galaxy they need to be refactored into a new package that doesn't depend on models, SA, galaxy.jobs, etc... [x] galaxy.tools.deps -> galaxy.tool_util.deps [x] galaxy.tools.loader -> galaxy.tool_util.loader [x] galaxy.tools.cwl -> galaxy.tool_util.cwl [x] galaxy.tools.loader -> galaxy.tool_util.loader [x] galaxy.tools.fetcher -> galaxy.tool_util.fetcher [x] galaxy.tools.locations -> galaxy.tool_util.locations [x] galaxy.tools.parser -> galaxy.tool_util.parser --- lib/galaxy/app.py | 2 +- lib/galaxy/config.py | 8 +- lib/galaxy/jobs/__init__.py | 2 +- lib/galaxy/jobs/output_checker.py | 2 +- lib/galaxy/jobs/rule_helper.py | 2 +- lib/galaxy/jobs/runners/__init__.py | 2 +- lib/galaxy/jobs/runners/pulsar.py | 2 +- .../deps/mulled => tool_util}/__init__.py | 0 .../{tools => tool_util}/cwl/__init__.py | 0 .../{tools => tool_util}/cwl/cwltool_deps.py | 0 lib/galaxy/{tools => tool_util}/cwl/parser.py | 0 .../cwl/representation.py | 0 .../cwl/runtime_actions.py | 0 lib/galaxy/{tools => tool_util}/cwl/schema.py | 0 lib/galaxy/{tools => tool_util}/cwl/util.py | 0 .../{tools => tool_util}/deps/__init__.py | 4 +- .../{tools => tool_util}/deps/brew_exts.py | 0 .../{tools => tool_util}/deps/brew_util.py | 0 .../{tools => tool_util}/deps/commands.py | 0 .../{tools => tool_util}/deps/conda_compat.py | 0 .../{tools => tool_util}/deps/conda_util.py | 2 +- .../deps/container_classes.py | 0 .../deps/container_resolvers/__init__.py | 2 +- .../deps/container_resolvers/explicit.py | 0 .../deps/container_resolvers/mulled.py | 0 .../{tools => tool_util}/deps/containers.py | 4 +- .../{tools => tool_util}/deps/dependencies.py | 2 +- .../{tools => tool_util}/deps/docker_util.py | 0 .../{tools => tool_util}/deps/dockerfiles.py | 0 .../{tools => tool_util}/deps/installable.py | 0 lib/galaxy/tool_util/deps/mulled/__init__.py | 0 .../{tools => tool_util}/deps/mulled/_cli.py | 0 .../deps/mulled/invfile.lua | 0 .../deps/mulled/mulled_build.py | 2 +- .../deps/mulled/mulled_build_channel.py | 0 .../deps/mulled/mulled_build_files.py | 0 .../deps/mulled/mulled_build_tool.py | 2 +- .../deps/mulled/mulled_search.py | 0 .../{tools => tool_util}/deps/mulled/util.py | 0 .../{tools => tool_util}/deps/requirements.py | 0 .../deps/resolvers/__init__.py | 0 .../resolvers/brewed_tool_shed_packages.py | 0 .../deps/resolvers/conda.py | 8 +- .../deps/resolvers/default_conda_mapping.yml | 0 .../deps/resolvers/galaxy_packages.py | 0 .../deps/resolvers/homebrew.py | 0 .../deps/resolvers/lmod.py | 0 .../deps/resolvers/modules.py | 0 .../deps/resolvers/resolver_mixins.py | 0 .../deps/resolvers/tool_shed_packages.py | 0 .../resolvers/unlinked_tool_shed_packages.py | 0 .../deps/singularity_util.py | 0 lib/galaxy/{tools => tool_util}/deps/views.py | 2 +- lib/galaxy/{tools => tool_util}/fetcher.py | 4 +- lib/galaxy/{tools => tool_util}/loader.py | 0 .../locations/__init__.py | 0 .../locations/dockstore.py | 0 .../{tools => tool_util}/locations/file.py | 0 .../{tools => tool_util}/locations/http.py | 0 .../{tools => tool_util}/parser/__init__.py | 0 lib/galaxy/{tools => tool_util}/parser/cwl.py | 4 +- .../parser/error_level.py | 0 .../{tools => tool_util}/parser/factory.py | 2 +- .../{tools => tool_util}/parser/interface.py | 0 .../parser/output_actions.py | 0 .../parser/output_collection_def.py | 0 .../parser/output_objects.py | 0 .../{tools => tool_util}/parser/util.py | 0 lib/galaxy/{tools => tool_util}/parser/xml.py | 2 +- .../{tools => tool_util}/parser/yaml.py | 2 +- lib/galaxy/tools/__init__.py | 30 ++--- lib/galaxy/tools/actions/__init__.py | 2 +- lib/galaxy/tools/execute.py | 2 +- lib/galaxy/tools/expressions/util.py | 2 +- lib/galaxy/tools/lint.py | 2 +- lib/galaxy/tools/loader_directory.py | 4 +- lib/galaxy/tools/parameters/basic.py | 3 +- lib/galaxy/tools/parameters/output_collect.py | 4 +- lib/galaxy/tools/toolbox/base.py | 2 +- lib/galaxy/tools/verify/interactor.py | 2 +- .../webapps/galaxy/api/tool_dependencies.py | 2 +- .../galaxy/controllers/admin_toolshed.py | 2 +- lib/galaxy/workflow/extract.py | 2 +- lib/galaxy/workflow/modules.py | 2 +- .../galaxy_install/install_manager.py | 2 +- .../tool_dependencies/recipe/tag_handler.py | 2 +- lib/tool_shed/metadata/metadata_generator.py | 2 +- lib/tool_shed/tools/tool_validator.py | 2 +- lib/tool_shed/util/shed_util_common.py | 4 +- packages/tool_util/HISTORY.rst | 12 ++ packages/tool_util/LICENSE | 1 + packages/tool_util/MANIFEST.in | 2 + packages/tool_util/README.rst | 14 +++ packages/tool_util/galaxy/__init__.py | 1 + .../galaxy/project_galaxy_tool_util.py | 12 ++ packages/tool_util/galaxy/tool_util | 1 + packages/tool_util/requirements.txt | 1 + packages/tool_util/setup.cfg | 1 + packages/tool_util/setup.py | 113 ++++++++++++++++++ .../tool_util/tests/test_conda_resolution.py | 1 + packages/tool_util/tests/test_parsing.py | 1 + packages/tool_util/tests/test_tool_deps.py | 1 + packages/tool_util/tests/test_tool_loader.py | 1 + scripts/manage_tool_dependencies.py | 4 +- scripts/validate_tools.sh | 2 +- test/base/integration_util.py | 2 +- test/integration/test_containerized_jobs.py | 2 +- test/unit/jobs/test_job_output_checker.py | 4 +- test/unit/tools/test_actions.py | 2 +- .../tools/test_collect_primary_datasets.py | 2 +- test/unit/tools/test_conda_resolution.py | 6 +- test/unit/tools/test_evaluation.py | 2 +- test/unit/tools/test_parsing.py | 17 +-- .../tools/test_tool_dependency_description.py | 2 +- test/unit/tools/test_tool_deps.py | 12 +- test/unit/tools/test_tool_loader.py | 2 +- test/unit/tools_support.py | 2 +- test/unit/unittest_utils/galaxy_mock.py | 2 +- 118 files changed, 261 insertions(+), 99 deletions(-) rename lib/galaxy/{tools/deps/mulled => tool_util}/__init__.py (100%) rename lib/galaxy/{tools => tool_util}/cwl/__init__.py (100%) rename lib/galaxy/{tools => tool_util}/cwl/cwltool_deps.py (100%) rename lib/galaxy/{tools => tool_util}/cwl/parser.py (100%) rename lib/galaxy/{tools => tool_util}/cwl/representation.py (100%) rename lib/galaxy/{tools => tool_util}/cwl/runtime_actions.py (100%) rename lib/galaxy/{tools => tool_util}/cwl/schema.py (100%) rename lib/galaxy/{tools => tool_util}/cwl/util.py (100%) rename lib/galaxy/{tools => tool_util}/deps/__init__.py (99%) rename lib/galaxy/{tools => tool_util}/deps/brew_exts.py (100%) rename lib/galaxy/{tools => tool_util}/deps/brew_util.py (100%) rename lib/galaxy/{tools => tool_util}/deps/commands.py (100%) rename lib/galaxy/{tools => tool_util}/deps/conda_compat.py (100%) rename lib/galaxy/{tools => tool_util}/deps/conda_util.py (99%) rename lib/galaxy/{tools => tool_util}/deps/container_classes.py (100%) rename lib/galaxy/{tools => tool_util}/deps/container_resolvers/__init__.py (94%) rename lib/galaxy/{tools => tool_util}/deps/container_resolvers/explicit.py (100%) rename lib/galaxy/{tools => tool_util}/deps/container_resolvers/mulled.py (100%) rename lib/galaxy/{tools => tool_util}/deps/containers.py (98%) rename lib/galaxy/{tools => tool_util}/deps/dependencies.py (98%) rename lib/galaxy/{tools => tool_util}/deps/docker_util.py (100%) rename lib/galaxy/{tools => tool_util}/deps/dockerfiles.py (100%) rename lib/galaxy/{tools => tool_util}/deps/installable.py (100%) create mode 100644 lib/galaxy/tool_util/deps/mulled/__init__.py rename lib/galaxy/{tools => tool_util}/deps/mulled/_cli.py (100%) rename lib/galaxy/{tools => tool_util}/deps/mulled/invfile.lua (100%) rename lib/galaxy/{tools => tool_util}/deps/mulled/mulled_build.py (99%) rename lib/galaxy/{tools => tool_util}/deps/mulled/mulled_build_channel.py (100%) rename lib/galaxy/{tools => tool_util}/deps/mulled/mulled_build_files.py (100%) rename lib/galaxy/{tools => tool_util}/deps/mulled/mulled_build_tool.py (96%) rename lib/galaxy/{tools => tool_util}/deps/mulled/mulled_search.py (100%) rename lib/galaxy/{tools => tool_util}/deps/mulled/util.py (100%) rename lib/galaxy/{tools => tool_util}/deps/requirements.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/__init__.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/brewed_tool_shed_packages.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/conda.py (98%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/default_conda_mapping.yml (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/galaxy_packages.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/homebrew.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/lmod.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/modules.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/resolver_mixins.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/tool_shed_packages.py (100%) rename lib/galaxy/{tools => tool_util}/deps/resolvers/unlinked_tool_shed_packages.py (100%) rename lib/galaxy/{tools => tool_util}/deps/singularity_util.py (100%) rename lib/galaxy/{tools => tool_util}/deps/views.py (99%) rename lib/galaxy/{tools => tool_util}/fetcher.py (86%) rename lib/galaxy/{tools => tool_util}/loader.py (100%) rename lib/galaxy/{tools => tool_util}/locations/__init__.py (100%) rename lib/galaxy/{tools => tool_util}/locations/dockstore.py (100%) rename lib/galaxy/{tools => tool_util}/locations/file.py (100%) rename lib/galaxy/{tools => tool_util}/locations/http.py (100%) rename lib/galaxy/{tools => tool_util}/parser/__init__.py (100%) rename lib/galaxy/{tools => tool_util}/parser/cwl.py (98%) rename lib/galaxy/{tools => tool_util}/parser/error_level.py (100%) rename lib/galaxy/{tools => tool_util}/parser/factory.py (98%) rename lib/galaxy/{tools => tool_util}/parser/interface.py (100%) rename lib/galaxy/{tools => tool_util}/parser/output_actions.py (100%) rename lib/galaxy/{tools => tool_util}/parser/output_collection_def.py (100%) rename lib/galaxy/{tools => tool_util}/parser/output_objects.py (100%) rename lib/galaxy/{tools => tool_util}/parser/util.py (100%) rename lib/galaxy/{tools => tool_util}/parser/xml.py (99%) rename lib/galaxy/{tools => tool_util}/parser/yaml.py (99%) create mode 100644 packages/tool_util/HISTORY.rst create mode 120000 packages/tool_util/LICENSE create mode 100644 packages/tool_util/MANIFEST.in create mode 100644 packages/tool_util/README.rst create mode 100644 packages/tool_util/galaxy/__init__.py create mode 100644 packages/tool_util/galaxy/project_galaxy_tool_util.py create mode 120000 packages/tool_util/galaxy/tool_util create mode 100644 packages/tool_util/requirements.txt create mode 120000 packages/tool_util/setup.cfg create mode 100644 packages/tool_util/setup.py create mode 120000 packages/tool_util/tests/test_conda_resolution.py create mode 120000 packages/tool_util/tests/test_parsing.py create mode 120000 packages/tool_util/tests/test_tool_deps.py create mode 120000 packages/tool_util/tests/test_tool_loader.py diff --git a/lib/galaxy/app.py b/lib/galaxy/app.py index 98a6114762c..6e66f5b26b8 100644 --- a/lib/galaxy/app.py +++ b/lib/galaxy/app.py @@ -20,12 +20,12 @@ from galaxy.managers.libraries import LibraryManager from galaxy.managers.tools import DynamicToolManager from galaxy.model.tags import GalaxyTagHandler from galaxy.queue_worker import GalaxyQueueWorker +from galaxy.tool_util.deps.views import DependencyResolversView from galaxy.tools.cache import ( ToolCache, ToolShedRepositoryCache ) from galaxy.tools.data_manager.manager import DataManagers -from galaxy.tools.deps.views import DependencyResolversView from galaxy.tools.error_reports import ErrorReports from galaxy.tools.special_tools import load_lib_tools from galaxy.tools.verify import test_data diff --git a/lib/galaxy/config.py b/lib/galaxy/config.py index 8754a41a175..7a1fd5aa37a 100644 --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -25,7 +25,7 @@ from six.moves import configparser from galaxy.containers import parse_containers_config from galaxy.exceptions import ConfigurationError -from galaxy.tools.deps.container_resolvers.mulled import DEFAULT_CHANNELS +from galaxy.tool_util.deps.container_resolvers.mulled import DEFAULT_CHANNELS from galaxy.util import ExecutionTimer from galaxy.util import listify from galaxy.util import string_as_bool @@ -513,7 +513,7 @@ class Configuration(object): else: self.conda_mapping_files = [ self.local_conda_mapping_file, - os.path.join(self.root, "lib", "galaxy", "tools", "deps", "resolvers", "default_conda_mapping.yml"), + os.path.join(self.root, "lib", "galaxy", "tool_util", "deps", "resolvers", "default_conda_mapping.yml"), ] self.enable_beta_mulled_containers = string_as_bool(kwargs.get('enable_beta_mulled_containers', 'False')) @@ -1053,8 +1053,8 @@ class ConfiguresGalaxyMixin(object): def _configure_toolbox(self): from galaxy import tools from galaxy.managers.citations import CitationsManager - from galaxy.tools.deps import containers - from galaxy.tools.deps.dependencies import AppInfo + from galaxy.tool_util.deps import containers + from galaxy.tool_util.deps.dependencies import AppInfo import galaxy.tools.search self.citations_manager = CitationsManager(self) diff --git a/lib/galaxy/jobs/__init__.py b/lib/galaxy/jobs/__init__.py index 33bcb0b4728..dc589429e52 100644 --- a/lib/galaxy/jobs/__init__.py +++ b/lib/galaxy/jobs/__init__.py @@ -32,6 +32,7 @@ from galaxy.jobs.mapper import JobMappingException, JobRunnerMapper from galaxy.jobs.runners import BaseJobRunner, JobState from galaxy.metadata import get_metadata_compute_strategy from galaxy.objectstore import ObjectStorePopulator +from galaxy.tool_util.deps import requirements from galaxy.util import safe_makedirs, unicodify from galaxy.util.bunch import Bunch from galaxy.util.expressions import ExpressionContext @@ -551,7 +552,6 @@ class JobConfiguration(ConfiguresHandlers): for param in parent.findall('param'): key = param.get('id') if key in ["container", "container_override"]: - from galaxy.tools.deps import requirements containers = map(requirements.container_from_element, param.findall('container')) param_value = list(map(lambda c: c.to_dict(), containers)) else: diff --git a/lib/galaxy/jobs/output_checker.py b/lib/galaxy/jobs/output_checker.py index 0d4bae30de6..13ebc1ad243 100644 --- a/lib/galaxy/jobs/output_checker.py +++ b/lib/galaxy/jobs/output_checker.py @@ -1,7 +1,7 @@ import re from logging import getLogger -from galaxy.tools.parser.error_level import StdioErrorLevel +from galaxy.tool_util.parser.error_level import StdioErrorLevel from galaxy.util import unicodify from galaxy.util.bunch import Bunch diff --git a/lib/galaxy/jobs/rule_helper.py b/lib/galaxy/jobs/rule_helper.py index 2dd339d6ae4..cca29fa7477 100644 --- a/lib/galaxy/jobs/rule_helper.py +++ b/lib/galaxy/jobs/rule_helper.py @@ -9,7 +9,7 @@ from galaxy import ( model, util ) -from galaxy.tools.deps.dependencies import ToolInfo +from galaxy.tool_util.deps.dependencies import ToolInfo log = logging.getLogger(__name__) diff --git a/lib/galaxy/jobs/runners/__init__.py b/lib/galaxy/jobs/runners/__init__.py index 88867243703..ca559898c64 100644 --- a/lib/galaxy/jobs/runners/__init__.py +++ b/lib/galaxy/jobs/runners/__init__.py @@ -25,7 +25,7 @@ from galaxy.jobs.runners.util.job_script import ( job_script, write_script ) -from galaxy.tools.deps.dependencies import ( +from galaxy.tool_util.deps.dependencies import ( JobInfo, ToolInfo ) diff --git a/lib/galaxy/jobs/runners/pulsar.py b/lib/galaxy/jobs/runners/pulsar.py index 38c4634b4c5..eed1c5605aa 100644 --- a/lib/galaxy/jobs/runners/pulsar.py +++ b/lib/galaxy/jobs/runners/pulsar.py @@ -36,7 +36,7 @@ from galaxy.jobs.runners import ( AsynchronousJobRunner, AsynchronousJobState ) -from galaxy.tools.deps import dependencies +from galaxy.tool_util.deps import dependencies from galaxy.util import ( galaxy_directory, specs, diff --git a/lib/galaxy/tools/deps/mulled/__init__.py b/lib/galaxy/tool_util/__init__.py similarity index 100% rename from lib/galaxy/tools/deps/mulled/__init__.py rename to lib/galaxy/tool_util/__init__.py diff --git a/lib/galaxy/tools/cwl/__init__.py b/lib/galaxy/tool_util/cwl/__init__.py similarity index 100% rename from lib/galaxy/tools/cwl/__init__.py rename to lib/galaxy/tool_util/cwl/__init__.py diff --git a/lib/galaxy/tools/cwl/cwltool_deps.py b/lib/galaxy/tool_util/cwl/cwltool_deps.py similarity index 100% rename from lib/galaxy/tools/cwl/cwltool_deps.py rename to lib/galaxy/tool_util/cwl/cwltool_deps.py diff --git a/lib/galaxy/tools/cwl/parser.py b/lib/galaxy/tool_util/cwl/parser.py similarity index 100% rename from lib/galaxy/tools/cwl/parser.py rename to lib/galaxy/tool_util/cwl/parser.py diff --git a/lib/galaxy/tools/cwl/representation.py b/lib/galaxy/tool_util/cwl/representation.py similarity index 100% rename from lib/galaxy/tools/cwl/representation.py rename to lib/galaxy/tool_util/cwl/representation.py diff --git a/lib/galaxy/tools/cwl/runtime_actions.py b/lib/galaxy/tool_util/cwl/runtime_actions.py similarity index 100% rename from lib/galaxy/tools/cwl/runtime_actions.py rename to lib/galaxy/tool_util/cwl/runtime_actions.py diff --git a/lib/galaxy/tools/cwl/schema.py b/lib/galaxy/tool_util/cwl/schema.py similarity index 100% rename from lib/galaxy/tools/cwl/schema.py rename to lib/galaxy/tool_util/cwl/schema.py diff --git a/lib/galaxy/tools/cwl/util.py b/lib/galaxy/tool_util/cwl/util.py similarity index 100% rename from lib/galaxy/tools/cwl/util.py rename to lib/galaxy/tool_util/cwl/util.py diff --git a/lib/galaxy/tools/deps/__init__.py b/lib/galaxy/tool_util/deps/__init__.py similarity index 99% rename from lib/galaxy/tools/deps/__init__.py rename to lib/galaxy/tool_util/deps/__init__.py index 116193ddc7e..1aab7f2e545 100644 --- a/lib/galaxy/tools/deps/__init__.py +++ b/lib/galaxy/tool_util/deps/__init__.py @@ -257,8 +257,8 @@ class DependencyManager(object): return plugin_config.load_plugins(self.resolver_classes, plugin_source, extra_kwds) def __resolvers_dict(self): - import galaxy.tools.deps.resolvers - return plugin_config.plugins_dict(galaxy.tools.deps.resolvers, 'resolver_type') + import galaxy.tool_util.deps.resolvers + return plugin_config.plugins_dict(galaxy.tool_util.deps.resolvers, 'resolver_type') class CachedDependencyManager(DependencyManager): diff --git a/lib/galaxy/tools/deps/brew_exts.py b/lib/galaxy/tool_util/deps/brew_exts.py similarity index 100% rename from lib/galaxy/tools/deps/brew_exts.py rename to lib/galaxy/tool_util/deps/brew_exts.py diff --git a/lib/galaxy/tools/deps/brew_util.py b/lib/galaxy/tool_util/deps/brew_util.py similarity index 100% rename from lib/galaxy/tools/deps/brew_util.py rename to lib/galaxy/tool_util/deps/brew_util.py diff --git a/lib/galaxy/tools/deps/commands.py b/lib/galaxy/tool_util/deps/commands.py similarity index 100% rename from lib/galaxy/tools/deps/commands.py rename to lib/galaxy/tool_util/deps/commands.py diff --git a/lib/galaxy/tools/deps/conda_compat.py b/lib/galaxy/tool_util/deps/conda_compat.py similarity index 100% rename from lib/galaxy/tools/deps/conda_compat.py rename to lib/galaxy/tool_util/deps/conda_compat.py diff --git a/lib/galaxy/tools/deps/conda_util.py b/lib/galaxy/tool_util/deps/conda_util.py similarity index 99% rename from lib/galaxy/tools/deps/conda_util.py rename to lib/galaxy/tool_util/deps/conda_util.py index 546bc487325..711cb942ec1 100644 --- a/lib/galaxy/tools/deps/conda_util.py +++ b/lib/galaxy/tool_util/deps/conda_util.py @@ -12,7 +12,7 @@ import packaging.version import six from six.moves import shlex_quote -from galaxy.tools.deps.commands import CommandLineException +from galaxy.tool_util.deps.commands import CommandLineException from galaxy.util import ( smart_str, unicodify diff --git a/lib/galaxy/tools/deps/container_classes.py b/lib/galaxy/tool_util/deps/container_classes.py similarity index 100% rename from lib/galaxy/tools/deps/container_classes.py rename to lib/galaxy/tool_util/deps/container_classes.py diff --git a/lib/galaxy/tools/deps/container_resolvers/__init__.py b/lib/galaxy/tool_util/deps/container_resolvers/__init__.py similarity index 94% rename from lib/galaxy/tools/deps/container_resolvers/__init__.py rename to lib/galaxy/tool_util/deps/container_resolvers/__init__.py index 337b0328a4d..8a6dd286ad1 100644 --- a/lib/galaxy/tools/deps/container_resolvers/__init__.py +++ b/lib/galaxy/tool_util/deps/container_resolvers/__init__.py @@ -37,7 +37,7 @@ class ContainerResolver(Dictifiable): def resolve(self, enabled_container_types, tool_info, **kwds): """Find a container matching all supplied requirements for tool. - The supplied argument is a :class:`galaxy.tools.deps.containers.ToolInfo` description + The supplied argument is a :class:`galaxy.tool_util.deps.containers.ToolInfo` description of the tool and its requirements. """ diff --git a/lib/galaxy/tools/deps/container_resolvers/explicit.py b/lib/galaxy/tool_util/deps/container_resolvers/explicit.py similarity index 100% rename from lib/galaxy/tools/deps/container_resolvers/explicit.py rename to lib/galaxy/tool_util/deps/container_resolvers/explicit.py diff --git a/lib/galaxy/tools/deps/container_resolvers/mulled.py b/lib/galaxy/tool_util/deps/container_resolvers/mulled.py similarity index 100% rename from lib/galaxy/tools/deps/container_resolvers/mulled.py rename to lib/galaxy/tool_util/deps/container_resolvers/mulled.py diff --git a/lib/galaxy/tools/deps/containers.py b/lib/galaxy/tool_util/deps/containers.py similarity index 98% rename from lib/galaxy/tools/deps/containers.py rename to lib/galaxy/tool_util/deps/containers.py index 35229b4e631..d99a2e1c0aa 100644 --- a/lib/galaxy/tools/deps/containers.py +++ b/lib/galaxy/tool_util/deps/containers.py @@ -217,8 +217,8 @@ class ContainerRegistry(object): return default_resolvers def __resolvers_dict(self): - import galaxy.tools.deps.container_resolvers - return plugin_config.plugins_dict(galaxy.tools.deps.container_resolvers, 'resolver_type') + import galaxy.tool_util.deps.container_resolvers + return plugin_config.plugins_dict(galaxy.tool_util.deps.container_resolvers, 'resolver_type') def find_best_container_description(self, enabled_container_types, tool_info): """Yield best container description of supplied types matching tool info.""" diff --git a/lib/galaxy/tools/deps/dependencies.py b/lib/galaxy/tool_util/deps/dependencies.py similarity index 98% rename from lib/galaxy/tools/deps/dependencies.py rename to lib/galaxy/tool_util/deps/dependencies.py index bc1820cf52c..dc1ffcee146 100644 --- a/lib/galaxy/tools/deps/dependencies.py +++ b/lib/galaxy/tool_util/deps/dependencies.py @@ -1,4 +1,4 @@ -from galaxy.tools.deps.requirements import ToolRequirements +from galaxy.tool_util.deps.requirements import ToolRequirements from galaxy.util import bunch from .mulled.mulled_build import DEFAULT_CHANNELS diff --git a/lib/galaxy/tools/deps/docker_util.py b/lib/galaxy/tool_util/deps/docker_util.py similarity index 100% rename from lib/galaxy/tools/deps/docker_util.py rename to lib/galaxy/tool_util/deps/docker_util.py diff --git a/lib/galaxy/tools/deps/dockerfiles.py b/lib/galaxy/tool_util/deps/dockerfiles.py similarity index 100% rename from lib/galaxy/tools/deps/dockerfiles.py rename to lib/galaxy/tool_util/deps/dockerfiles.py diff --git a/lib/galaxy/tools/deps/installable.py b/lib/galaxy/tool_util/deps/installable.py similarity index 100% rename from lib/galaxy/tools/deps/installable.py rename to lib/galaxy/tool_util/deps/installable.py diff --git a/lib/galaxy/tool_util/deps/mulled/__init__.py b/lib/galaxy/tool_util/deps/mulled/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/galaxy/tools/deps/mulled/_cli.py b/lib/galaxy/tool_util/deps/mulled/_cli.py similarity index 100% rename from lib/galaxy/tools/deps/mulled/_cli.py rename to lib/galaxy/tool_util/deps/mulled/_cli.py diff --git a/lib/galaxy/tools/deps/mulled/invfile.lua b/lib/galaxy/tool_util/deps/mulled/invfile.lua similarity index 100% rename from lib/galaxy/tools/deps/mulled/invfile.lua rename to lib/galaxy/tool_util/deps/mulled/invfile.lua diff --git a/lib/galaxy/tools/deps/mulled/mulled_build.py b/lib/galaxy/tool_util/deps/mulled/mulled_build.py similarity index 99% rename from lib/galaxy/tools/deps/mulled/mulled_build.py rename to lib/galaxy/tool_util/deps/mulled/mulled_build.py index c3c84f5a586..e08c5d53d93 100644 --- a/lib/galaxy/tools/deps/mulled/mulled_build.py +++ b/lib/galaxy/tool_util/deps/mulled/mulled_build.py @@ -24,7 +24,7 @@ try: except ImportError: yaml = None -from galaxy.tools.deps import commands, installable +from galaxy.tool_util.deps import commands, installable from galaxy.util import safe_makedirs from ._cli import arg_parser from .util import ( diff --git a/lib/galaxy/tools/deps/mulled/mulled_build_channel.py b/lib/galaxy/tool_util/deps/mulled/mulled_build_channel.py similarity index 100% rename from lib/galaxy/tools/deps/mulled/mulled_build_channel.py rename to lib/galaxy/tool_util/deps/mulled/mulled_build_channel.py diff --git a/lib/galaxy/tools/deps/mulled/mulled_build_files.py b/lib/galaxy/tool_util/deps/mulled/mulled_build_files.py similarity index 100% rename from lib/galaxy/tools/deps/mulled/mulled_build_files.py rename to lib/galaxy/tool_util/deps/mulled/mulled_build_files.py diff --git a/lib/galaxy/tools/deps/mulled/mulled_build_tool.py b/lib/galaxy/tool_util/deps/mulled/mulled_build_tool.py similarity index 96% rename from lib/galaxy/tools/deps/mulled/mulled_build_tool.py rename to lib/galaxy/tool_util/deps/mulled/mulled_build_tool.py index a46cb06da57..682c6755830 100644 --- a/lib/galaxy/tools/deps/mulled/mulled_build_tool.py +++ b/lib/galaxy/tool_util/deps/mulled/mulled_build_tool.py @@ -9,7 +9,7 @@ Build mulled images for requirements defined in a tool: """ -from galaxy.tools.parser import get_tool_source +from galaxy.tool_util.parser import get_tool_source from ._cli import arg_parser from .mulled_build import ( add_build_arguments, diff --git a/lib/galaxy/tools/deps/mulled/mulled_search.py b/lib/galaxy/tool_util/deps/mulled/mulled_search.py similarity index 100% rename from lib/galaxy/tools/deps/mulled/mulled_search.py rename to lib/galaxy/tool_util/deps/mulled/mulled_search.py diff --git a/lib/galaxy/tools/deps/mulled/util.py b/lib/galaxy/tool_util/deps/mulled/util.py similarity index 100% rename from lib/galaxy/tools/deps/mulled/util.py rename to lib/galaxy/tool_util/deps/mulled/util.py diff --git a/lib/galaxy/tools/deps/requirements.py b/lib/galaxy/tool_util/deps/requirements.py similarity index 100% rename from lib/galaxy/tools/deps/requirements.py rename to lib/galaxy/tool_util/deps/requirements.py diff --git a/lib/galaxy/tools/deps/resolvers/__init__.py b/lib/galaxy/tool_util/deps/resolvers/__init__.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/__init__.py rename to lib/galaxy/tool_util/deps/resolvers/__init__.py diff --git a/lib/galaxy/tools/deps/resolvers/brewed_tool_shed_packages.py b/lib/galaxy/tool_util/deps/resolvers/brewed_tool_shed_packages.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/brewed_tool_shed_packages.py rename to lib/galaxy/tool_util/deps/resolvers/brewed_tool_shed_packages.py diff --git a/lib/galaxy/tools/deps/resolvers/conda.py b/lib/galaxy/tool_util/deps/resolvers/conda.py similarity index 98% rename from lib/galaxy/tools/deps/resolvers/conda.py rename to lib/galaxy/tool_util/deps/resolvers/conda.py index 898c081fcb6..28468ffb8ee 100644 --- a/lib/galaxy/tools/deps/resolvers/conda.py +++ b/lib/galaxy/tool_util/deps/resolvers/conda.py @@ -7,8 +7,8 @@ import logging import os import re -import galaxy.tools.deps.installable -import galaxy.tools.deps.requirements +import galaxy.tool_util.deps.installable +import galaxy.tool_util.deps.requirements from . import ( Dependency, DependencyException, @@ -133,7 +133,7 @@ class CondaDependencyResolver(DependencyResolver, MultipleDependencyResolver, Li auto_install = _string_as_bool(get_option("auto_install")) self.auto_init = _string_as_bool(get_option("auto_init")) self.conda_context = conda_context - self.disabled = not galaxy.tools.deps.installable.ensure_installed(conda_context, install_conda, self.auto_init) + self.disabled = not galaxy.tool_util.deps.installable.ensure_installed(conda_context, install_conda, self.auto_init) if self.auto_init and not self.disabled: self.conda_context.ensure_conda_build_installed_if_needed() self.auto_install = auto_install @@ -206,7 +206,7 @@ class CondaDependencyResolver(DependencyResolver, MultipleDependencyResolver, Li if requirement.type != "package": return [] - ToolRequirements = galaxy.tools.deps.requirements.ToolRequirements + ToolRequirements = galaxy.tool_util.deps.requirements.ToolRequirements expanded_requirements = ToolRequirements([self._expand_requirement(r) for r in requirements]) if self.versionless: conda_targets = [CondaTarget(r.name, version=None) for r in expanded_requirements] diff --git a/lib/galaxy/tools/deps/resolvers/default_conda_mapping.yml b/lib/galaxy/tool_util/deps/resolvers/default_conda_mapping.yml similarity index 100% rename from lib/galaxy/tools/deps/resolvers/default_conda_mapping.yml rename to lib/galaxy/tool_util/deps/resolvers/default_conda_mapping.yml diff --git a/lib/galaxy/tools/deps/resolvers/galaxy_packages.py b/lib/galaxy/tool_util/deps/resolvers/galaxy_packages.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/galaxy_packages.py rename to lib/galaxy/tool_util/deps/resolvers/galaxy_packages.py diff --git a/lib/galaxy/tools/deps/resolvers/homebrew.py b/lib/galaxy/tool_util/deps/resolvers/homebrew.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/homebrew.py rename to lib/galaxy/tool_util/deps/resolvers/homebrew.py diff --git a/lib/galaxy/tools/deps/resolvers/lmod.py b/lib/galaxy/tool_util/deps/resolvers/lmod.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/lmod.py rename to lib/galaxy/tool_util/deps/resolvers/lmod.py diff --git a/lib/galaxy/tools/deps/resolvers/modules.py b/lib/galaxy/tool_util/deps/resolvers/modules.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/modules.py rename to lib/galaxy/tool_util/deps/resolvers/modules.py diff --git a/lib/galaxy/tools/deps/resolvers/resolver_mixins.py b/lib/galaxy/tool_util/deps/resolvers/resolver_mixins.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/resolver_mixins.py rename to lib/galaxy/tool_util/deps/resolvers/resolver_mixins.py diff --git a/lib/galaxy/tools/deps/resolvers/tool_shed_packages.py b/lib/galaxy/tool_util/deps/resolvers/tool_shed_packages.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/tool_shed_packages.py rename to lib/galaxy/tool_util/deps/resolvers/tool_shed_packages.py diff --git a/lib/galaxy/tools/deps/resolvers/unlinked_tool_shed_packages.py b/lib/galaxy/tool_util/deps/resolvers/unlinked_tool_shed_packages.py similarity index 100% rename from lib/galaxy/tools/deps/resolvers/unlinked_tool_shed_packages.py rename to lib/galaxy/tool_util/deps/resolvers/unlinked_tool_shed_packages.py diff --git a/lib/galaxy/tools/deps/singularity_util.py b/lib/galaxy/tool_util/deps/singularity_util.py similarity index 100% rename from lib/galaxy/tools/deps/singularity_util.py rename to lib/galaxy/tool_util/deps/singularity_util.py diff --git a/lib/galaxy/tools/deps/views.py b/lib/galaxy/tool_util/deps/views.py similarity index 99% rename from lib/galaxy/tools/deps/views.py rename to lib/galaxy/tool_util/deps/views.py index 0ce83a3d121..bd78aa54cf5 100644 --- a/lib/galaxy/tools/deps/views.py +++ b/lib/galaxy/tool_util/deps/views.py @@ -2,7 +2,7 @@ from galaxy import exceptions class DependencyResolversView(object): - """ Provide a RESTfulish/JSONy interface to a galaxy.tools.deps.DependencyResolver + """ Provide a RESTfulish/JSONy interface to a galaxy.tool_util.deps.DependencyResolver object. This can be adapted by the Galaxy web framework or other web apps. """ diff --git a/lib/galaxy/tools/fetcher.py b/lib/galaxy/tool_util/fetcher.py similarity index 86% rename from lib/galaxy/tools/fetcher.py rename to lib/galaxy/tool_util/fetcher.py index 686de383fb9..a0b01dbd956 100644 --- a/lib/galaxy/tools/fetcher.py +++ b/lib/galaxy/tool_util/fetcher.py @@ -7,8 +7,8 @@ class ToolLocationFetcher(object): self.resolver_classes = self.__resolvers_dict() def __resolvers_dict(self): - import galaxy.tools.locations - return plugin_config.plugins_dict(galaxy.tools.locations, 'scheme') + import galaxy.tool_util.locations + return plugin_config.plugins_dict(galaxy.tool_util.locations, 'scheme') def to_tool_path(self, path_or_uri_like, **kwds): if "://" not in path_or_uri_like: diff --git a/lib/galaxy/tools/loader.py b/lib/galaxy/tool_util/loader.py similarity index 100% rename from lib/galaxy/tools/loader.py rename to lib/galaxy/tool_util/loader.py diff --git a/lib/galaxy/tools/locations/__init__.py b/lib/galaxy/tool_util/locations/__init__.py similarity index 100% rename from lib/galaxy/tools/locations/__init__.py rename to lib/galaxy/tool_util/locations/__init__.py diff --git a/lib/galaxy/tools/locations/dockstore.py b/lib/galaxy/tool_util/locations/dockstore.py similarity index 100% rename from lib/galaxy/tools/locations/dockstore.py rename to lib/galaxy/tool_util/locations/dockstore.py diff --git a/lib/galaxy/tools/locations/file.py b/lib/galaxy/tool_util/locations/file.py similarity index 100% rename from lib/galaxy/tools/locations/file.py rename to lib/galaxy/tool_util/locations/file.py diff --git a/lib/galaxy/tools/locations/http.py b/lib/galaxy/tool_util/locations/http.py similarity index 100% rename from lib/galaxy/tools/locations/http.py rename to lib/galaxy/tool_util/locations/http.py diff --git a/lib/galaxy/tools/parser/__init__.py b/lib/galaxy/tool_util/parser/__init__.py similarity index 100% rename from lib/galaxy/tools/parser/__init__.py rename to lib/galaxy/tool_util/parser/__init__.py diff --git a/lib/galaxy/tools/parser/cwl.py b/lib/galaxy/tool_util/parser/cwl.py similarity index 98% rename from lib/galaxy/tools/parser/cwl.py rename to lib/galaxy/tool_util/parser/cwl.py index edf744acbb1..bdec03eb641 100644 --- a/lib/galaxy/tools/parser/cwl.py +++ b/lib/galaxy/tool_util/parser/cwl.py @@ -1,8 +1,8 @@ import logging import os -from galaxy.tools.cwl import tool_proxy -from galaxy.tools.deps import requirements +from galaxy.tool_util.cwl import tool_proxy +from galaxy.tool_util.deps import requirements from galaxy.util.odict import odict from .error_level import StdioErrorLevel from .interface import ( diff --git a/lib/galaxy/tools/parser/error_level.py b/lib/galaxy/tool_util/parser/error_level.py similarity index 100% rename from lib/galaxy/tools/parser/error_level.py rename to lib/galaxy/tool_util/parser/error_level.py diff --git a/lib/galaxy/tools/parser/factory.py b/lib/galaxy/tool_util/parser/factory.py similarity index 98% rename from lib/galaxy/tools/parser/factory.py rename to lib/galaxy/tool_util/parser/factory.py index 10ab5587063..63a65fea3c8 100644 --- a/lib/galaxy/tools/parser/factory.py +++ b/lib/galaxy/tool_util/parser/factory.py @@ -5,7 +5,7 @@ import logging import yaml -from galaxy.tools.loader import load_tool_with_refereces +from galaxy.tool_util.loader import load_tool_with_refereces from galaxy.util.odict import odict from .cwl import CwlToolSource from .interface import InputSource diff --git a/lib/galaxy/tools/parser/interface.py b/lib/galaxy/tool_util/parser/interface.py similarity index 100% rename from lib/galaxy/tools/parser/interface.py rename to lib/galaxy/tool_util/parser/interface.py diff --git a/lib/galaxy/tools/parser/output_actions.py b/lib/galaxy/tool_util/parser/output_actions.py similarity index 100% rename from lib/galaxy/tools/parser/output_actions.py rename to lib/galaxy/tool_util/parser/output_actions.py diff --git a/lib/galaxy/tools/parser/output_collection_def.py b/lib/galaxy/tool_util/parser/output_collection_def.py similarity index 100% rename from lib/galaxy/tools/parser/output_collection_def.py rename to lib/galaxy/tool_util/parser/output_collection_def.py diff --git a/lib/galaxy/tools/parser/output_objects.py b/lib/galaxy/tool_util/parser/output_objects.py similarity index 100% rename from lib/galaxy/tools/parser/output_objects.py rename to lib/galaxy/tool_util/parser/output_objects.py diff --git a/lib/galaxy/tools/parser/util.py b/lib/galaxy/tool_util/parser/util.py similarity index 100% rename from lib/galaxy/tools/parser/util.py rename to lib/galaxy/tool_util/parser/util.py diff --git a/lib/galaxy/tools/parser/xml.py b/lib/galaxy/tool_util/parser/xml.py similarity index 99% rename from lib/galaxy/tools/parser/xml.py rename to lib/galaxy/tool_util/parser/xml.py index 6c7f32af29c..24eca5a78a4 100644 --- a/lib/galaxy/tools/parser/xml.py +++ b/lib/galaxy/tool_util/parser/xml.py @@ -7,7 +7,7 @@ from math import isinf import packaging.version -from galaxy.tools.deps import requirements +from galaxy.tool_util.deps import requirements from galaxy.util import string_as_bool, xml_text, xml_to_string from galaxy.util.odict import odict from .error_level import StdioErrorLevel diff --git a/lib/galaxy/tools/parser/yaml.py b/lib/galaxy/tool_util/parser/yaml.py similarity index 99% rename from lib/galaxy/tools/parser/yaml.py rename to lib/galaxy/tool_util/parser/yaml.py index 88500de805c..d13331cd768 100644 --- a/lib/galaxy/tools/parser/yaml.py +++ b/lib/galaxy/tool_util/parser/yaml.py @@ -1,6 +1,6 @@ import packaging.version -from galaxy.tools.deps import requirements +from galaxy.tool_util.deps import requirements from galaxy.util.odict import odict from .interface import InputSource from .interface import PageSource diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index f6954e0efcf..db5175818a0 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -29,15 +29,26 @@ from galaxy.managers.jobs import JobSearch from galaxy.metadata import get_metadata_compute_strategy from galaxy.model.tags import GalaxyTagHandler from galaxy.queue_worker import send_control_task +from galaxy.tool_util.deps import ( + CachedDependencyManager, +) +from galaxy.tool_util.fetcher import ToolLocationFetcher +from galaxy.tool_util.loader import ( + imported_macro_paths, + raw_tool_xml_tree, + template_macro_params +) +from galaxy.tool_util.parser import ( + get_tool_source, + get_tool_source_from_representation, + ToolOutputCollectionPart +) +from galaxy.tool_util.parser.xml import XmlPageSource from galaxy.tools import expressions from galaxy.tools.actions import DefaultToolAction from galaxy.tools.actions.data_manager import DataManagerToolAction from galaxy.tools.actions.data_source import DataSourceToolAction from galaxy.tools.actions.model_operations import ModelOperationToolAction -from galaxy.tools.deps import ( - CachedDependencyManager, -) -from galaxy.tools.fetcher import ToolLocationFetcher from galaxy.tools.parameters import ( check_param, params_from_strings, @@ -64,12 +75,6 @@ from galaxy.tools.parameters.grouping import Conditional, ConditionalWhen, Repea from galaxy.tools.parameters.input_translation import ToolInputTranslator from galaxy.tools.parameters.meta import expand_meta_parameters from galaxy.tools.parameters.wrapped_json import json_wrap -from galaxy.tools.parser import ( - get_tool_source, - get_tool_source_from_representation, - ToolOutputCollectionPart -) -from galaxy.tools.parser.xml import XmlPageSource from galaxy.tools.test import parse_tests from galaxy.tools.toolbox import BaseGalaxyToolBox from galaxy.util import ( @@ -96,11 +101,6 @@ from .execute import ( execute as execute_job, MappingParameters, ) -from .loader import ( - imported_macro_paths, - raw_tool_xml_tree, - template_macro_params -) from .provided_metadata import parse_tool_provided_metadata log = logging.getLogger(__name__) diff --git a/lib/galaxy/tools/actions/__init__.py b/lib/galaxy/tools/actions/__init__.py index 8ff721b6d28..3125f399355 100644 --- a/lib/galaxy/tools/actions/__init__.py +++ b/lib/galaxy/tools/actions/__init__.py @@ -932,7 +932,7 @@ def get_ext_or_implicit_ext(hda): def determine_output_format(output, parameter_context, input_datasets, input_dataset_collections, random_input_ext, python_template_version='3'): """ Determines the output format for a dataset based on an abstract - description of the output (galaxy.tools.parser.ToolOutput), the parameter + description of the output (galaxy.tool_util.parser.ToolOutput), the parameter wrappers, a map of the input datasets (name => HDA), and the last input extensions in the tool form. diff --git a/lib/galaxy/tools/execute.py b/lib/galaxy/tools/execute.py index 16012e25e49..e5a10d7c18e 100644 --- a/lib/galaxy/tools/execute.py +++ b/lib/galaxy/tools/execute.py @@ -11,8 +11,8 @@ import six.moves from galaxy import model from galaxy.model.dataset_collections.structure import get_structure, tool_output_to_structure +from galaxy.tool_util.parser import ToolOutputCollectionPart from galaxy.tools.actions import filter_output, on_text_for_names, ToolExecutionCache -from galaxy.tools.parser import ToolOutputCollectionPart from galaxy.util import ExecutionTimer log = logging.getLogger(__name__) diff --git a/lib/galaxy/tools/expressions/util.py b/lib/galaxy/tools/expressions/util.py index 082ed3c916f..e2d969e84f9 100644 --- a/lib/galaxy/tools/expressions/util.py +++ b/lib/galaxy/tools/expressions/util.py @@ -1,4 +1,4 @@ -from galaxy.tools.deps.commands import which +from galaxy.tool_util.deps.commands import which def find_engine(config): diff --git a/lib/galaxy/tools/lint.py b/lib/galaxy/tools/lint.py index 99efabd8678..7a808dad744 100644 --- a/lib/galaxy/tools/lint.py +++ b/lib/galaxy/tools/lint.py @@ -3,9 +3,9 @@ from __future__ import print_function import inspect +from galaxy.tool_util.parser import get_tool_source from galaxy.util import submodules from galaxy.util.getargspec import getfullargspec -from .parser import get_tool_source LEVEL_ALL = "all" diff --git a/lib/galaxy/tools/loader_directory.py b/lib/galaxy/tools/loader_directory.py index 1cdbc7d6b35..c21937987b7 100644 --- a/lib/galaxy/tools/loader_directory.py +++ b/lib/galaxy/tools/loader_directory.py @@ -8,9 +8,9 @@ import sys import yaml +from galaxy.tool_util import loader +from galaxy.tool_util.parser import get_tool_source from galaxy.util import checkers -from .parser import get_tool_source -from ..tools import loader log = logging.getLogger(__name__) diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 74e4fa5d7b1..b0b31df164e 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -14,8 +14,8 @@ from six import string_types from webob.compat import cgi_FieldStorage import galaxy.model -import galaxy.tools.parser from galaxy import util +from galaxy.tool_util.parser import get_input_source as ensure_input_source from galaxy.util import ( sanitize_param, string_as_bool, @@ -35,7 +35,6 @@ from .dataset_matcher import ( get_dataset_matcher_factory, ) from .sanitize import ToolParameterSanitizer -from ..parser import get_input_source as ensure_input_source log = logging.getLogger(__name__) diff --git a/lib/galaxy/tools/parameters/output_collect.py b/lib/galaxy/tools/parameters/output_collect.py index caca15031cd..a31107fa9f0 100644 --- a/lib/galaxy/tools/parameters/output_collect.py +++ b/lib/galaxy/tools/parameters/output_collect.py @@ -20,7 +20,7 @@ from galaxy.model.store.discover import ( RegexCollectedDatasetMatch, UNSET, ) -from galaxy.tools.parser.output_collection_def import ( +from galaxy.tool_util.parser.output_collection_def import ( DEFAULT_DATASET_COLLECTOR_DESCRIPTION, INPUT_DBKEY_TOKEN, ToolProvidedMetadataDatasetCollection, @@ -417,7 +417,7 @@ class DatasetCollector(object): def __init__(self, dataset_collection_description): self.discover_via = dataset_collection_description.discover_via # dataset_collection_description is an abstract description - # built from the tool parsing module - see galaxy.tools.parser.output_colleciton_def + # built from the tool parsing module - see galaxy.tool_util.parser.output_colleciton_def self.sort_key = dataset_collection_description.sort_key self.sort_reverse = dataset_collection_description.sort_reverse self.sort_comp = dataset_collection_description.sort_comp diff --git a/lib/galaxy/tools/toolbox/base.py b/lib/galaxy/tools/toolbox/base.py index 9e2ae51a2dc..a85979cbf76 100644 --- a/lib/galaxy/tools/toolbox/base.py +++ b/lib/galaxy/tools/toolbox/base.py @@ -11,7 +11,7 @@ from six import iteritems from six.moves.urllib.parse import urlparse from galaxy.exceptions import MessageException, ObjectNotFound -from galaxy.tools.deps import build_dependency_manager +from galaxy.tool_util.deps import build_dependency_manager from galaxy.tools.loader_directory import looks_like_a_tool from galaxy.util import ( ExecutionTimer, diff --git a/lib/galaxy/tools/verify/interactor.py b/lib/galaxy/tools/verify/interactor.py index f330656c801..90207d3bc65 100644 --- a/lib/galaxy/tools/verify/interactor.py +++ b/lib/galaxy/tools/verify/interactor.py @@ -29,7 +29,7 @@ from six import ( ) from galaxy import util -from galaxy.tools.parser.interface import TestCollectionDef, TestCollectionOutputDef +from galaxy.tool_util.parser.interface import TestCollectionDef, TestCollectionOutputDef from galaxy.util.bunch import Bunch from . import verify from .asserts import verify_assertions diff --git a/lib/galaxy/webapps/galaxy/api/tool_dependencies.py b/lib/galaxy/webapps/galaxy/api/tool_dependencies.py index c28eadb7207..5fea48074d4 100644 --- a/lib/galaxy/webapps/galaxy/api/tool_dependencies.py +++ b/lib/galaxy/webapps/galaxy/api/tool_dependencies.py @@ -3,7 +3,7 @@ API operations allowing clients to manage tool dependencies. """ import logging -from galaxy.tools.deps import views +from galaxy.tool_util.deps import views from galaxy.web import ( expose_api, require_admin diff --git a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py index 18a95a1627f..001deeb2794 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py @@ -7,7 +7,7 @@ from sqlalchemy import or_ import tool_shed.repository_types.util as rt_util from galaxy import util, web -from galaxy.tools.deps import views +from galaxy.tool_util.deps import views from galaxy.util import unicodify from galaxy.web.form_builder import CheckboxField from tool_shed.galaxy_install import ( diff --git a/lib/galaxy/workflow/extract.py b/lib/galaxy/workflow/extract.py index 80f02b00258..53e926ec9f7 100644 --- a/lib/galaxy/workflow/extract.py +++ b/lib/galaxy/workflow/extract.py @@ -4,6 +4,7 @@ histories. import logging from galaxy import exceptions, model +from galaxy.tool_util.parser import ToolOutputCollectionPart from galaxy.tools.parameters.basic import ( DataCollectionToolParameter, DataToolParameter @@ -13,7 +14,6 @@ from galaxy.tools.parameters.grouping import ( Repeat, Section ) -from galaxy.tools.parser import ToolOutputCollectionPart from galaxy.util.odict import odict from .steps import ( attach_ordered_steps, diff --git a/lib/galaxy/workflow/modules.py b/lib/galaxy/workflow/modules.py index d7089226c5e..598f4736dd8 100644 --- a/lib/galaxy/workflow/modules.py +++ b/lib/galaxy/workflow/modules.py @@ -18,6 +18,7 @@ from galaxy.exceptions import ToolMissingException from galaxy.jobs.actions.post import ActionBox from galaxy.model import PostJobAction from galaxy.model.dataset_collections import matching +from galaxy.tool_util.parser.output_objects import ToolExpressionOutput from galaxy.tools import ( DatabaseOperationTool, DefaultToolState, @@ -45,7 +46,6 @@ from galaxy.tools.parameters.basic import ( ) from galaxy.tools.parameters.history_query import HistoryQuery from galaxy.tools.parameters.wrapped import make_dict_copy -from galaxy.tools.parser.output_objects import ToolExpressionOutput from galaxy.util.bunch import Bunch from galaxy.util.json import safe_loads from galaxy.util.odict import odict diff --git a/lib/tool_shed/galaxy_install/install_manager.py b/lib/tool_shed/galaxy_install/install_manager.py index 0812a14ab05..e75d0e0930d 100644 --- a/lib/tool_shed/galaxy_install/install_manager.py +++ b/lib/tool_shed/galaxy_install/install_manager.py @@ -10,7 +10,7 @@ from six import string_types from sqlalchemy import or_ from galaxy import exceptions, util -from galaxy.tools.deps import views +from galaxy.tool_util.deps import views from tool_shed.galaxy_install.datatypes import custom_datatype_manager from tool_shed.galaxy_install.metadata.installed_repository_metadata_manager import InstalledRepositoryMetadataManager from tool_shed.galaxy_install.repository_dependencies import repository_dependency_manager diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py index 3cfed4fdce2..a7e6b0f1d76 100644 --- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py +++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py @@ -2,7 +2,7 @@ import logging import os import tempfile -from galaxy.tools.deps.resolvers import NullDependency +from galaxy.tool_util.deps.resolvers import NullDependency from galaxy.util import listify, url_get from tool_shed.galaxy_install.tool_dependencies.env_manager import EnvManager from tool_shed.galaxy_install.tool_dependencies.recipe.env_file_builder import EnvFileBuilder diff --git a/lib/tool_shed/metadata/metadata_generator.py b/lib/tool_shed/metadata/metadata_generator.py index 6ab82b82761..7aa5b0007f6 100644 --- a/lib/tool_shed/metadata/metadata_generator.py +++ b/lib/tool_shed/metadata/metadata_generator.py @@ -6,9 +6,9 @@ import tempfile from sqlalchemy import and_ from galaxy import util +from galaxy.tool_util.parser.interface import TestCollectionDef from galaxy.tools.data_manager.manager import DataManager from galaxy.tools.loader_directory import looks_like_a_tool -from galaxy.tools.parser.interface import TestCollectionDef from galaxy.tools.repositories import ValidationContext from galaxy.web import url_for from tool_shed.repository_types import util as rt_util diff --git a/lib/tool_shed/tools/tool_validator.py b/lib/tool_shed/tools/tool_validator.py index 609186438d4..c844996de43 100644 --- a/lib/tool_shed/tools/tool_validator.py +++ b/lib/tool_shed/tools/tool_validator.py @@ -3,13 +3,13 @@ import logging import os import tempfile +from galaxy.tool_util.fetcher import ToolLocationFetcher from galaxy.tools import ( create_tool_from_source, get_tool_source, parameters, Tool ) -from galaxy.tools.fetcher import ToolLocationFetcher from galaxy.tools.parameters import dynamic_options from tool_shed.tools.data_table_manager import ShedToolDataTableManager from tool_shed.util import ( diff --git a/lib/tool_shed/util/shed_util_common.py b/lib/tool_shed/util/shed_util_common.py index a2bb858a632..b649f435760 100644 --- a/lib/tool_shed/util/shed_util_common.py +++ b/lib/tool_shed/util/shed_util_common.py @@ -8,7 +8,7 @@ import string import sqlalchemy.orm.exc from sqlalchemy import and_, false, true -import galaxy.tools.deps.requirements +import galaxy.tool_util.deps.requirements from galaxy import util from galaxy.util import checkers from galaxy.web import url_for @@ -231,7 +231,7 @@ def get_tool_shed_repo_requirements(app, tool_shed_url, repositories=None, repo_ def get_requirements_from_tools(tools): - return {tool['id']: galaxy.tools.deps.requirements.ToolRequirements.from_list(tool['requirements']) for tool in tools} + return {tool['id']: galaxy.tool_util.deps.requirements.ToolRequirements.from_list(tool['requirements']) for tool in tools} def get_requirements_from_repository(repository): diff --git a/packages/tool_util/HISTORY.rst b/packages/tool_util/HISTORY.rst new file mode 100644 index 00000000000..470356353e5 --- /dev/null +++ b/packages/tool_util/HISTORY.rst @@ -0,0 +1,12 @@ +.. :changelog: + +History +------- + +.. to_doc + +--------------------- +19.9.0.dev0 +--------------------- + +* Initial import from dev branch of Galaxy during 19.09 release cycle. diff --git a/packages/tool_util/LICENSE b/packages/tool_util/LICENSE new file mode 120000 index 00000000000..1ef648f64b3 --- /dev/null +++ b/packages/tool_util/LICENSE @@ -0,0 +1 @@ +../../LICENSE.txt \ No newline at end of file diff --git a/packages/tool_util/MANIFEST.in b/packages/tool_util/MANIFEST.in new file mode 100644 index 00000000000..2bf148a5764 --- /dev/null +++ b/packages/tool_util/MANIFEST.in @@ -0,0 +1,2 @@ +include *.rst LICENSE + diff --git a/packages/tool_util/README.rst b/packages/tool_util/README.rst new file mode 100644 index 00000000000..74c8c0f1f31 --- /dev/null +++ b/packages/tool_util/README.rst @@ -0,0 +1,14 @@ + +.. image:: https://badge.fury.io/py/galaxy-tool-util.svg + :target: https://pypi.python.org/pypi/galaxy-tool-util/ + + +Overview +-------- + +The Galaxy_ tool utilities. + +* Free software: Academic Free License version 3.0 +* Code: https://github.com/galaxyproject/galaxy + +.. _Galaxy: http://galaxyproject.org/ diff --git a/packages/tool_util/galaxy/__init__.py b/packages/tool_util/galaxy/__init__.py new file mode 100644 index 00000000000..69e3be50dac --- /dev/null +++ b/packages/tool_util/galaxy/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/packages/tool_util/galaxy/project_galaxy_tool_util.py b/packages/tool_util/galaxy/project_galaxy_tool_util.py new file mode 100644 index 00000000000..80fd1069067 --- /dev/null +++ b/packages/tool_util/galaxy/project_galaxy_tool_util.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +__version__ = '19.9.0.dev0' + +PROJECT_NAME = "galaxy-tool-util" +PROJECT_OWNER = PROJECT_USERAME = "galaxyproject" +PROJECT_URL = "https://github.com/galaxyproject/galaxy" +PROJECT_AUTHOR = 'Galaxy Project and Community' +PROJECT_EMAIL = 'jmchilton@gmail.com' +RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % ( + PROJECT_USERAME, PROJECT_NAME +) diff --git a/packages/tool_util/galaxy/tool_util b/packages/tool_util/galaxy/tool_util new file mode 120000 index 00000000000..8997fb7715a --- /dev/null +++ b/packages/tool_util/galaxy/tool_util @@ -0,0 +1 @@ +../../../lib/galaxy/tool_util \ No newline at end of file diff --git a/packages/tool_util/requirements.txt b/packages/tool_util/requirements.txt new file mode 100644 index 00000000000..623c4906bb2 --- /dev/null +++ b/packages/tool_util/requirements.txt @@ -0,0 +1 @@ +galaxy-util diff --git a/packages/tool_util/setup.cfg b/packages/tool_util/setup.cfg new file mode 120000 index 00000000000..eb7cf09393f --- /dev/null +++ b/packages/tool_util/setup.cfg @@ -0,0 +1 @@ +../../setup.cfg \ No newline at end of file diff --git a/packages/tool_util/setup.py b/packages/tool_util/setup.py new file mode 100644 index 00000000000..2170880d3b5 --- /dev/null +++ b/packages/tool_util/setup.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import ast +import os +import re +try: + from setuptools import setup +except ImportError: + from distutils.core import setup + +SOURCE_DIR = "galaxy" + +_version_re = re.compile(r'__version__\s+=\s+(.*)') + +with open('%s/project_galaxy_tool_util.py' % SOURCE_DIR, 'rb') as f: + init_contents = f.read().decode('utf-8') + + def get_var(var_name): + pattern = re.compile(r'%s\s+=\s+(.*)' % var_name) + match = pattern.search(init_contents).group(1) + return str(ast.literal_eval(match)) + + version = get_var("__version__") + PROJECT_NAME = get_var("PROJECT_NAME") + PROJECT_URL = get_var("PROJECT_URL") + PROJECT_AUTHOR = get_var("PROJECT_AUTHOR") + PROJECT_EMAIL = get_var("PROJECT_EMAIL") + +TEST_DIR = 'tests' +PROJECT_DESCRIPTION = 'Galaxy Tool Utilities' +PACKAGES = [ + 'galaxy', + 'galaxy.tool_util', + 'galaxy.tool_util.cwl', + 'galaxy.tool_util.deps', + 'galaxy.tool_util.deps.container_resolvers', + 'galaxy.tool_util.deps.mulled', + 'galaxy.tool_util.deps.resolvers', + 'galaxy.tool_util.locations', + 'galaxy.tool_util.parser', +] +ENTRY_POINTS = ''' + [console_scripts] + mulled-build=galaxy.tool_util.deps.mulled.mulled_build:main + mulled-build-channel=galaxy.tool_util.deps.mulled.mulled_build_channel:main + mulled-search=galaxy.tool_util.deps.mulled.mulled_search:main + mulled-build-tool=galaxy.tool_util.deps.mulled.mulled_build_tool:main + mulled-build-files=galaxy.tool_util.deps.mulled.mulled_build_files:main +''' +PACKAGE_DATA = { + # Be sure to update MANIFEST.in for source dist. + 'galaxy': [ + 'tool_util/deps/mulled/invfile.lua', + 'tool_util/deps/resolvers/default_conda_mapping.yml', + ], +} +PACKAGE_DIR = { + SOURCE_DIR: SOURCE_DIR, +} + +readme = open('README.rst').read() +history = open('HISTORY.rst').read().replace('.. :changelog:', '') + +if os.path.exists("requirements.txt"): + requirements = open("requirements.txt").read().split("\n") +else: + # In tox, it will cover them anyway. + requirements = [] + + +test_requirements = [ + # TODO: put package test requirements here +] + + +setup( + name=PROJECT_NAME, + version=version, + description=PROJECT_DESCRIPTION, + long_description=readme + '\n\n' + history, + author=PROJECT_AUTHOR, + author_email=PROJECT_EMAIL, + url=PROJECT_URL, + packages=PACKAGES, + entry_points=ENTRY_POINTS, + package_data=PACKAGE_DATA, + package_dir=PACKAGE_DIR, + include_package_data=True, + install_requires=requirements, + license="AFL", + zip_safe=False, + keywords='galaxy', + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Environment :: Console', + 'License :: OSI Approved :: Academic Free License (AFL)', + 'Operating System :: POSIX', + 'Topic :: Software Development', + 'Topic :: Software Development :: Code Generators', + 'Topic :: Software Development :: Testing', + 'Natural Language :: English', + "Programming Language :: Python :: 2", + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + ], + test_suite=TEST_DIR, + tests_require=test_requirements +) diff --git a/packages/tool_util/tests/test_conda_resolution.py b/packages/tool_util/tests/test_conda_resolution.py new file mode 120000 index 00000000000..645faad4496 --- /dev/null +++ b/packages/tool_util/tests/test_conda_resolution.py @@ -0,0 +1 @@ +../../../test/unit/tools/test_conda_resolution.py \ No newline at end of file diff --git a/packages/tool_util/tests/test_parsing.py b/packages/tool_util/tests/test_parsing.py new file mode 120000 index 00000000000..b21638588e4 --- /dev/null +++ b/packages/tool_util/tests/test_parsing.py @@ -0,0 +1 @@ +../../../test/unit/tools/test_parsing.py \ No newline at end of file diff --git a/packages/tool_util/tests/test_tool_deps.py b/packages/tool_util/tests/test_tool_deps.py new file mode 120000 index 00000000000..34701999330 --- /dev/null +++ b/packages/tool_util/tests/test_tool_deps.py @@ -0,0 +1 @@ +../../../test/unit/tools/test_tool_deps.py \ No newline at end of file diff --git a/packages/tool_util/tests/test_tool_loader.py b/packages/tool_util/tests/test_tool_loader.py new file mode 120000 index 00000000000..572b75ae0a5 --- /dev/null +++ b/packages/tool_util/tests/test_tool_loader.py @@ -0,0 +1 @@ +../../../test/unit/tools/test_tool_loader.py \ No newline at end of file diff --git a/scripts/manage_tool_dependencies.py b/scripts/manage_tool_dependencies.py index 0ff3a6b6a5c..e1de8bcf562 100644 --- a/scripts/manage_tool_dependencies.py +++ b/scripts/manage_tool_dependencies.py @@ -9,7 +9,7 @@ from galaxy.config import ( find_root, parse_dependency_options, ) -from galaxy.tools.deps import CachedDependencyManager, DependencyManager, NullDependencyManager +from galaxy.tool_util.deps import CachedDependencyManager, DependencyManager, NullDependencyManager from galaxy.util.script import main_factory DESCRIPTION = "Script to manage tool dependencies (with focus on a Conda environments)." @@ -21,7 +21,7 @@ def _init_if_needed(args, kwargs): def _build_dependency_manager_no_config(kwargs): - """Simplified variant of build_dependency_manager from galaxy.tools.deps. + """Simplified variant of build_dependency_manager from galaxy.tool_util.deps. The canonical factory method requires a full Galaxy configuration object which we do not have available in this script (an optimization). diff --git a/scripts/validate_tools.sh b/scripts/validate_tools.sh index df7bfdeae45..16502e530d8 100755 --- a/scripts/validate_tools.sh +++ b/scripts/validate_tools.sh @@ -21,7 +21,7 @@ for p in "$@"; do echo $path PYTHONPATH=lib:$PYTHONPATH export PYTHONPATH - result=`python -c "import galaxy.tools.loader; import xml.etree; xml.etree.ElementTree.dump(galaxy.tools.loader.load_tool('$path').getroot())" | xmllint --nowarning --noout --schema "$xsd_path" - 2> "$err_tmp"` + result=`python -c "import galaxy.tool_util.loader; import xml.etree; xml.etree.ElementTree.dump(galaxy.tool_util.loader.load_tool('$path').getroot())" | xmllint --nowarning --noout --schema "$xsd_path" - 2> "$err_tmp"` if [ $? -eq 0 ] then echo "ok $count"; diff --git a/test/base/integration_util.py b/test/base/integration_util.py index 36e9aa44b0c..d137d73b618 100644 --- a/test/base/integration_util.py +++ b/test/base/integration_util.py @@ -9,7 +9,7 @@ from unittest import skip, SkipTest, TestCase import pytest -from galaxy.tools.deps.commands import which +from galaxy.tool_util.deps.commands import which from galaxy.tools.verify.test_data import TestDataResolver from .api import UsesApiTestCaseMixin from .driver_util import GalaxyTestDriver diff --git a/test/integration/test_containerized_jobs.py b/test/integration/test_containerized_jobs.py index ccff74a7b7f..24f6ede524d 100644 --- a/test/integration/test_containerized_jobs.py +++ b/test/integration/test_containerized_jobs.py @@ -8,7 +8,7 @@ from base.populators import ( DatasetPopulator, ) -from galaxy.tools.deps.commands import which +from galaxy.tool_util.deps.commands import which from .test_job_environments import RunsEnvironmentJobs SCRIPT_DIRECTORY = os.path.abspath(os.path.dirname(__file__)) diff --git a/test/unit/jobs/test_job_output_checker.py b/test/unit/jobs/test_job_output_checker.py index eb6a76cdcea..112222931f5 100644 --- a/test/unit/jobs/test_job_output_checker.py +++ b/test/unit/jobs/test_job_output_checker.py @@ -1,8 +1,8 @@ from unittest import TestCase from galaxy.jobs.output_checker import check_output, DETECTED_JOB_STATE -from galaxy.tools.parser.error_level import StdioErrorLevel -from galaxy.tools.parser.interface import ToolStdioRegex +from galaxy.tool_util.parser.error_level import StdioErrorLevel +from galaxy.tool_util.parser.interface import ToolStdioRegex from galaxy.util.bunch import Bunch diff --git a/test/unit/tools/test_actions.py b/test/unit/tools/test_actions.py index 3c23507ab6b..ff5db993f10 100644 --- a/test/unit/tools/test_actions.py +++ b/test/unit/tools/test_actions.py @@ -4,12 +4,12 @@ from xml.etree.ElementTree import XML from galaxy import model from galaxy.exceptions import UserActivationRequiredException +from galaxy.tool_util.parser.output_objects import ToolOutput from galaxy.tools.actions import ( DefaultToolAction, determine_output_format, on_text_for_names ) -from galaxy.tools.parser.output_objects import ToolOutput from .. import tools_support diff --git a/test/unit/tools/test_collect_primary_datasets.py b/test/unit/tools/test_collect_primary_datasets.py index 0f1814680b3..99d51228e6f 100644 --- a/test/unit/tools/test_collect_primary_datasets.py +++ b/test/unit/tools/test_collect_primary_datasets.py @@ -6,7 +6,7 @@ from galaxy import ( model, util ) -from galaxy.tools.parser import output_collection_def +from galaxy.tool_util.parser import output_collection_def from galaxy.tools.provided_metadata import LegacyToolProvidedMetadata, NullToolProvidedMetadata from .. import tools_support diff --git a/test/unit/tools/test_conda_resolution.py b/test/unit/tools/test_conda_resolution.py index 7db7d9093a4..f86bd527c95 100644 --- a/test/unit/tools/test_conda_resolution.py +++ b/test/unit/tools/test_conda_resolution.py @@ -3,12 +3,12 @@ import shutil import unittest from tempfile import mkdtemp -from galaxy.tools.deps import ( +from galaxy.tool_util.deps import ( conda_util, DependencyManager ) -from galaxy.tools.deps.requirements import ToolRequirement -from galaxy.tools.deps.resolvers.conda import CondaDependencyResolver +from galaxy.tool_util.deps.requirements import ToolRequirement +from galaxy.tool_util.deps.resolvers.conda import CondaDependencyResolver def skip_unless_environ(var): diff --git a/test/unit/tools/test_evaluation.py b/test/unit/tools/test_evaluation.py index f85ceb227ba..93345de7215 100644 --- a/test/unit/tools/test_evaluation.py +++ b/test/unit/tools/test_evaluation.py @@ -12,6 +12,7 @@ from galaxy.model import ( JobParameter, JobToInputDatasetAssociation ) +from galaxy.tool_util.parser.output_objects import ToolOutput from galaxy.tools.evaluation import ToolEvaluator # For MockTool from galaxy.tools.parameters import params_from_strings @@ -25,7 +26,6 @@ from galaxy.tools.parameters.grouping import ( ConditionalWhen, Repeat ) -from galaxy.tools.parser.output_objects import ToolOutput from galaxy.util.bunch import Bunch # Test fixtures for Galaxy infrastructure. from ..tools_support import UsesApp diff --git a/test/unit/tools/test_parsing.py b/test/unit/tools/test_parsing.py index 6fcb980a3c5..168bd09f0fd 100644 --- a/test/unit/tools/test_parsing.py +++ b/test/unit/tools/test_parsing.py @@ -5,7 +5,8 @@ import tempfile import unittest from math import isinf -from galaxy.tools.parser.factory import get_tool_source +from galaxy.tool_util.parser.factory import get_tool_source +from galaxy.util import galaxy_directory TOOL_XML_1 = """ @@ -521,7 +522,7 @@ class DataSourceLoaderTestCase(BaseLoaderTestCase): class ApplyRulesToolLoaderTestCase(BaseLoaderTestCase): - source_file_name = os.path.join(os.getcwd(), "lib/galaxy/tools/apply_rules.xml") + source_file_name = os.path.join(galaxy_directory(), "lib/galaxy/tools/apply_rules.xml") source_contents = None def test_tool_type(self): @@ -537,7 +538,7 @@ class ApplyRulesToolLoaderTestCase(BaseLoaderTestCase): class BuildListToolLoaderTestCase(BaseLoaderTestCase): - source_file_name = os.path.join(os.getcwd(), "lib/galaxy/tools/build_list.xml") + source_file_name = os.path.join(galaxy_directory(), "lib/galaxy/tools/build_list.xml") source_contents = None def test_tool_type(self): @@ -547,7 +548,7 @@ class BuildListToolLoaderTestCase(BaseLoaderTestCase): class SpecialToolLoaderTestCase(BaseLoaderTestCase): - source_file_name = os.path.join(os.getcwd(), "lib/galaxy/tools/imp_exp/exp_history_to_archive.xml") + source_file_name = os.path.join(galaxy_directory(), "lib/galaxy/tools/imp_exp/exp_history_to_archive.xml") source_contents = None def test_tool_type(self): @@ -572,7 +573,7 @@ class SpecialToolLoaderTestCase(BaseLoaderTestCase): class CollectionTestCase(BaseLoaderTestCase): - source_file_name = os.path.join(os.getcwd(), "test/functional/tools/collection_two_paired.xml") + source_file_name = os.path.join(galaxy_directory(), "test/functional/tools/collection_two_paired.xml") source_contents = None def test_tests(self): @@ -586,7 +587,7 @@ class CollectionTestCase(BaseLoaderTestCase): class CollectionOutputXmlTestCase(BaseLoaderTestCase): - source_file_name = os.path.join(os.getcwd(), "test/functional/tools/collection_creates_pair.xml") + source_file_name = os.path.join(galaxy_directory(), "test/functional/tools/collection_creates_pair.xml") source_contents = None def test_tests(self): @@ -595,7 +596,7 @@ class CollectionOutputXmlTestCase(BaseLoaderTestCase): class CollectionOutputYamlTestCase(BaseLoaderTestCase): - source_file_name = os.path.join(os.getcwd(), "test/functional/tools/collection_creates_pair_y.yml") + source_file_name = os.path.join(galaxy_directory(), "test/functional/tools/collection_creates_pair_y.yml") source_contents = None def test_tests(self): @@ -604,7 +605,7 @@ class CollectionOutputYamlTestCase(BaseLoaderTestCase): class ExpectationsTestCase(BaseLoaderTestCase): - source_file_name = os.path.join(os.getcwd(), "test/functional/tools/detect_errors.xml") + source_file_name = os.path.join(galaxy_directory(), "test/functional/tools/detect_errors.xml") source_contents = None def test_tests(self): diff --git a/test/unit/tools/test_tool_dependency_description.py b/test/unit/tools/test_tool_dependency_description.py index 9dccd45beb4..6425a003b1c 100644 --- a/test/unit/tools/test_tool_dependency_description.py +++ b/test/unit/tools/test_tool_dependency_description.py @@ -1,5 +1,5 @@ from galaxy.model import tool_shed_install -from galaxy.tools.deps import ( +from galaxy.tool_util.deps import ( dependencies, requirements ) diff --git a/test/unit/tools/test_tool_deps.py b/test/unit/tools/test_tool_deps.py index 012d30f9b17..5230466f802 100644 --- a/test/unit/tools/test_tool_deps.py +++ b/test/unit/tools/test_tool_deps.py @@ -12,15 +12,15 @@ from shutil import rmtree from stat import S_IXUSR from subprocess import PIPE, Popen -from galaxy.tools.deps import DependencyManager -from galaxy.tools.deps.requirements import ( +from galaxy.tool_util.deps import DependencyManager +from galaxy.tool_util.deps.requirements import ( ToolRequirement, ToolRequirements ) -from galaxy.tools.deps.resolvers import NullDependency -from galaxy.tools.deps.resolvers.galaxy_packages import GalaxyPackageDependency -from galaxy.tools.deps.resolvers.lmod import LmodDependency, LmodDependencyResolver -from galaxy.tools.deps.resolvers.modules import ModuleDependency, ModuleDependencyResolver +from galaxy.tool_util.deps.resolvers import NullDependency +from galaxy.tool_util.deps.resolvers.galaxy_packages import GalaxyPackageDependency +from galaxy.tool_util.deps.resolvers.lmod import LmodDependency, LmodDependencyResolver +from galaxy.tool_util.deps.resolvers.modules import ModuleDependency, ModuleDependencyResolver from galaxy.util.bunch import Bunch diff --git a/test/unit/tools/test_tool_loader.py b/test/unit/tools/test_tool_loader.py index 3f2619973ae..f07c1e8c2b5 100644 --- a/test/unit/tools/test_tool_loader.py +++ b/test/unit/tools/test_tool_loader.py @@ -3,7 +3,7 @@ from shutil import rmtree from string import Template from tempfile import mkdtemp -from galaxy.tools.loader import load_tool, template_macro_params +from galaxy.tool_util.loader import load_tool, template_macro_params from galaxy.util import parse_xml diff --git a/test/unit/tools_support.py b/test/unit/tools_support.py index 70ec4965a78..1724558830b 100644 --- a/test/unit/tools_support.py +++ b/test/unit/tools_support.py @@ -11,8 +11,8 @@ from collections import defaultdict import galaxy.datatypes.registry import galaxy.model +from galaxy.tool_util.parser import get_tool_source from galaxy.tools import create_tool_from_source -from galaxy.tools.parser import get_tool_source from galaxy.util.bunch import Bunch from .unittest_utils import galaxy_mock diff --git a/test/unit/unittest_utils/galaxy_mock.py b/test/unit/unittest_utils/galaxy_mock.py index dcc931cb274..aef53950912 100644 --- a/test/unit/unittest_utils/galaxy_mock.py +++ b/test/unit/unittest_utils/galaxy_mock.py @@ -15,7 +15,7 @@ from galaxy.datatypes import registry from galaxy.jobs.manager import NoopManager from galaxy.model import mapping, tags from galaxy.security import idencoding -from galaxy.tools.deps.containers import NullContainerFinder +from galaxy.tool_util.deps.containers import NullContainerFinder from galaxy.util.bunch import Bunch from galaxy.util.dbkeys import GenomeBuilds from galaxy.web.stack import ApplicationStack