Revert "Create merged environments at install time"

This reverts commit 0e509a98ed.
This commit is contained in:
mvdbeek
2017-01-08 21:08:10 +01:00
parent 48a22d6e53
commit 50bee381d3
5 changed files with 14 additions and 36 deletions
-13
View File
@@ -118,19 +118,6 @@ class DependencyManager( object ):
return requirement_to_dependency
def install_all(self, requirements):
"""
Attempt to install all requirements at once.
If sucessfull returns True, else returns False
"""
for resolver in self.dependency_resolvers:
if hasattr(resolver, 'get_targets') and hasattr(resolver, 'install_all'):
targets = resolver.get_targets(requirements)
is_installed = resolver.install_all(targets)
if is_installed:
return True
return False
def _requirements_to_dependencies_dict(self, requirements, **kwds):
"""Build simple requirements to dependencies dict for resolution."""
requirement_to_dependency = OrderedDict()
+1 -10
View File
@@ -120,7 +120,7 @@ class CondaDependencyResolver(DependencyResolver, ListableDependencyResolver, In
return is_installed
def _get_conda_targets(self, requirements):
def resolve_all(self, requirements, **kwds):
if len(requirements) == 0:
return False
@@ -138,15 +138,6 @@ class CondaDependencyResolver(DependencyResolver, ListableDependencyResolver, In
version = None
conda_targets.append(CondaTarget(requirement.name, version=version))
return conda_targets
def get_targets(self, requirements):
return self._get_conda_targets(requirements)
def resolve_all(self, requirements, **kwds):
conda_targets = self.get_targets(requirements)
if not conda_targets:
return False
preserve_python_environment = kwds.get("preserve_python_environment", False)
-5
View File
@@ -45,11 +45,6 @@ class DependencyResolversView(object):
def resolver_dependency(self, index, **kwds):
return self._dependency(**kwds)
def install_dependencies(self, index, requirements):
is_installed = self._dependency_manager.install_all(requirements)
if not is_installed:
return [self.install_dependency(index, req) for req in requirements]
def install_dependency(self, index=None, **payload):
"""
Installs dependency using highest priority resolver that supports dependency installation
+4 -2
View File
@@ -141,9 +141,11 @@ class ToolsController( BaseAPIController, UsesVisualizationMixin ):
force_rebuild: If true and chache dir exists, attempts to delete cache dir
"""
tool = self._get_tool(id)
tool._view.install_dependencies(None, tool.requirements)
[tool._view.install_dependency(id=None, **req.to_dict()) for req in tool.requirements]
if kwds.get('build_dependency_cache'):
tool.build_dependency_cache(**kwds)
# TODO: rework resolver install system to log and report what has been done.
# _view.install_dependencies should return a dict with stdout, stderr and success status
# _view.install_dependency should return a dict with stdout, stderr and success status
return tool.tool_requirements_status
@expose_api
@@ -905,12 +905,15 @@ class InstallRepositoryManager( object ):
if 'tools' in metadata and install_resolver_dependencies:
self.update_tool_shed_repository_status( tool_shed_repository,
self.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES )
installed_requirements = []
for tool_d in metadata['tools']:
tool = self.app.toolbox._tools_by_id.get(tool_d['guid'], None)
if tool and tool.requirements not in installed_requirements:
installed_requirements.append(tool.requirements)
self._view.install_dependencies(None, tool.requirements)
requirements = suc.get_unique_requirements_from_repository(tool_shed_repository)
[self._view.install_dependency(id=None, **req) for req in requirements]
if self.app.config.use_cached_dependency_manager:
cached_requirements = []
for tool_d in metadata['tools']:
tool = self.app.toolbox._tools_by_id.get(tool_d['guid'], None)
if tool and tool.requirements not in cached_requirements:
cached_requirements.append(tool.requirements)
tool.build_dependency_cache()
if install_tool_dependencies and tool_shed_repository.tool_dependencies and 'tool_dependencies' in metadata:
work_dir = tempfile.mkdtemp( prefix="tmp-toolshed-itsr" )
# Install tool dependencies.