mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Give dependency resolvers a shot at resolving all dependencies at once.
This commit is contained in:
@@ -135,6 +135,23 @@ class DependencyManager( object ):
|
||||
if index is not None and i != index:
|
||||
continue
|
||||
|
||||
if len(requirement_to_dependency) == len(resolvable_requirements):
|
||||
# Shortcut - resolution complete.
|
||||
break
|
||||
|
||||
# Check requirements all at once
|
||||
all_unmet = len(requirement_to_dependency) == 0
|
||||
if all_unmet and hasattr(resolver, "resolve_all"):
|
||||
dependencies = resolver.resolve_all(resolvable_requirements, **kwds)
|
||||
if dependencies:
|
||||
assert len(dependencies) == len(resolvable_requirements)
|
||||
for requirement, dependency in zip(resolvable_requirements, dependencies):
|
||||
requirement_to_dependency[requirement] = dependency
|
||||
|
||||
# Shortcut - resolution complete.
|
||||
break
|
||||
|
||||
# Check individual requirements
|
||||
for requirement in resolvable_requirements:
|
||||
if requirement in requirement_to_dependency:
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user