Support minimum version in VagueDependency.

This commit is contained in:
Jelmer Vernooij 2021-03-26 12:29:56 +00:00
parent 7bc15f3cd1
commit 81a9f6f53f
2 changed files with 7 additions and 5 deletions

View file

@ -129,7 +129,7 @@ def problem_to_upstream_requirement(problem): # noqa: C901
elif isinstance(problem, MissingNodePackage):
return NodePackageRequirement(problem.package)
elif isinstance(problem, MissingVagueDependency):
return VagueDependencyRequirement(problem.name)
return VagueDependencyRequirement(problem.name, minimum_version=problem.minimum_version)
elif isinstance(problem, MissingLibrary):
return LibraryRequirement(problem.library)
elif isinstance(problem, MissingRubyFile):

View file

@ -149,23 +149,25 @@ class PerlModuleRequirement(Requirement):
class VagueDependencyRequirement(Requirement):
name: str
minimum_version: Optional[str] = None
def __init__(self, name):
def __init__(self, name, minimum_version=None):
super(VagueDependencyRequirement, self).__init__("vague")
self.name = name
self.minimum_version = minimum_version
def expand(self):
if " " not in self.name:
yield BinaryRequirement(self.name)
yield LibraryRequirement(self.name)
yield PkgConfigRequirement(self.name)
yield PkgConfigRequirement(self.name, minimum_version=self.minimum_version)
if self.name.lower() != self.name:
yield BinaryRequirement(self.name.lower())
yield LibraryRequirement(self.name.lower())
yield PkgConfigRequirement(self.name.lower())
yield PkgConfigRequirement(self.name.lower(), minimum_version=self.minimum_version)
from .resolver.apt import AptRequirement
yield AptRequirement.simple(self.name.lower())
yield AptRequirement.simple(self.name.lower(), minimum_version=self.minimum_version)
def met(self, session):
for x in self.expand():