Some more refactoring.
This commit is contained in:
parent
dd14deb00d
commit
7c61fa0e43
6 changed files with 39 additions and 28 deletions
|
@ -16,7 +16,7 @@
|
|||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
class MissingDependencies(Exception):
|
||||
class UnsatisfiedRequirements(Exception):
|
||||
|
||||
def __init__(self, reqs):
|
||||
self.requirements = reqs
|
||||
|
@ -55,7 +55,7 @@ class CPANResolver(Resolver):
|
|||
user="root", env={"PERL_MM_USE_DEFAULT": "1"}
|
||||
)
|
||||
if missing:
|
||||
raise MissingDependencies(missing)
|
||||
raise UnsatisfiedRequirements(missing)
|
||||
|
||||
def explain(self, requirements):
|
||||
raise NotImplementedError(self.explain)
|
||||
|
@ -83,7 +83,7 @@ class CargoResolver(Resolver):
|
|||
["cargo", "install", requirement.crate],
|
||||
user="root")
|
||||
if missing:
|
||||
raise MissingDependencies(missing)
|
||||
raise UnsatisfiedRequirements(missing)
|
||||
|
||||
def explain(self, requirements):
|
||||
raise NotImplementedError(self.explain)
|
||||
|
@ -109,7 +109,7 @@ class PypiResolver(Resolver):
|
|||
continue
|
||||
self.session.check_call(["pip", "install", requirement.package])
|
||||
if missing:
|
||||
raise MissingDependencies(missing)
|
||||
raise UnsatisfiedRequirements(missing)
|
||||
|
||||
def explain(self, requirements):
|
||||
raise NotImplementedError(self.explain)
|
||||
|
@ -145,7 +145,7 @@ class NpmResolver(Resolver):
|
|||
continue
|
||||
self.session.check_call(["npm", "-g", "install", package])
|
||||
if missing:
|
||||
raise MissingDependencies(missing)
|
||||
raise UnsatisfiedRequirements(missing)
|
||||
|
||||
def explain(self, requirements):
|
||||
raise NotImplementedError(self.explain)
|
||||
|
@ -165,7 +165,7 @@ class StackedResolver(Resolver):
|
|||
for sub in self.subs:
|
||||
try:
|
||||
sub.install(requirements)
|
||||
except MissingDependencies as e:
|
||||
except UnsatisfiedRequirements as e:
|
||||
requirements = e.requirements
|
||||
else:
|
||||
return
|
||||
|
@ -188,7 +188,7 @@ class ExplainResolver(Resolver):
|
|||
return cls(session)
|
||||
|
||||
def install(self, requirements):
|
||||
raise MissingDependencies(requirements)
|
||||
raise UnsatisfiedRequirements(requirements)
|
||||
|
||||
|
||||
def auto_resolver(session):
|
||||
|
|
|
@ -21,7 +21,7 @@ import posixpath
|
|||
|
||||
from ..debian.apt import AptManager
|
||||
|
||||
from . import Resolver, MissingDependencies
|
||||
from . import Resolver, UnsatisfiedRequirements
|
||||
from ..requirements import (
|
||||
BinaryRequirement,
|
||||
CHeaderRequirement,
|
||||
|
@ -520,19 +520,20 @@ class AptResolver(Resolver):
|
|||
missing.append(req)
|
||||
except NotImplementedError:
|
||||
missing.append(req)
|
||||
if missing:
|
||||
still_missing = []
|
||||
apt_requirements = []
|
||||
for m in missing:
|
||||
apt_req = self.resolve(m)
|
||||
if apt_req is None:
|
||||
still_missing.append(m)
|
||||
else:
|
||||
apt_requirements.append(m)
|
||||
self.apt.install(
|
||||
[req.package for req in apt_requirements])
|
||||
if still_missing:
|
||||
raise MissingDependencies(still_missing)
|
||||
if not missing:
|
||||
return
|
||||
still_missing = []
|
||||
apt_requirements = []
|
||||
for m in missing:
|
||||
apt_req = self.resolve(m)
|
||||
if apt_req is None:
|
||||
still_missing.append(m)
|
||||
else:
|
||||
apt_requirements.append(m)
|
||||
self.apt.install(
|
||||
[req.package for req in apt_requirements])
|
||||
if still_missing:
|
||||
raise UnsatisfiedRequirements(still_missing)
|
||||
|
||||
def explain(self, requirements):
|
||||
raise NotImplementedError(self.explain)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue