From 893f0b002905550f9d54cb01601a4bd0d0275f28 Mon Sep 17 00:00:00 2001 From: Xavier Fernandez Date: Sun, 2 Apr 2017 12:54:43 +0200 Subject: [PATCH] Remove uninstall mechanism from RequirementSet --- pip/commands/uninstall.py | 38 +++++++++++++++----------------------- pip/req/req_set.py | 7 ------- 2 files changed, 15 insertions(+), 30 deletions(-) diff --git a/pip/commands/uninstall.py b/pip/commands/uninstall.py index 8ba1a7c65d9..130bec9582e 100644 --- a/pip/commands/uninstall.py +++ b/pip/commands/uninstall.py @@ -1,8 +1,8 @@ from __future__ import absolute_import -import pip -from pip.wheel import WheelCache -from pip.req import InstallRequirement, RequirementSet, parse_requirements +from pip._vendor.packaging.utils import canonicalize_name + +from pip.req import InstallRequirement, parse_requirements from pip.basecommand import Command from pip.exceptions import InstallationError @@ -44,33 +44,25 @@ def __init__(self, *args, **kw): def run(self, options, args): with self._build_session(options) as session: - format_control = pip.index.FormatControl(set(), set()) - wheel_cache = WheelCache(options.cache_dir, format_control) - requirement_set = RequirementSet( - build_dir=None, - src_dir=None, - download_dir=None, - isolated=options.isolated_mode, - session=session, - wheel_cache=wheel_cache, - ) + reqs_to_uninstall = {} for name in args: - requirement_set.add_requirement( - InstallRequirement.from_line( - name, isolated=options.isolated_mode, - wheel_cache=wheel_cache - ) + req = InstallRequirement.from_line( + name, isolated=options.isolated_mode, ) + if req.name: + reqs_to_uninstall[canonicalize_name(req.name)] = req for filename in options.requirements: for req in parse_requirements( filename, options=options, - session=session, - wheel_cache=wheel_cache): - requirement_set.add_requirement(req) - if not requirement_set.has_requirements: + session=session): + if req.name: + reqs_to_uninstall[canonicalize_name(req.name)] = req + if not reqs_to_uninstall: raise InstallationError( 'You must give at least one requirement to %(name)s (see ' '"pip help %(name)s")' % dict(name=self.name) ) - requirement_set.uninstall(auto_confirm=options.yes) + for req in reqs_to_uninstall.values(): + req.uninstall(auto_confirm=options.yes) + req.uninstalled_pathset.commit() diff --git a/pip/req/req_set.py b/pip/req/req_set.py index c523c9f52e7..119a83dcae8 100644 --- a/pip/req/req_set.py +++ b/pip/req/req_set.py @@ -338,13 +338,6 @@ def get_requirement(self, project_name): return self.requirements[self.requirement_aliases[name]] raise KeyError("No project with the name %r" % project_name) - def uninstall(self, auto_confirm=False): - for req in self.requirements.values(): - if req.constraint: - continue - req.uninstall(auto_confirm=auto_confirm) - req.uninstalled_pathset.commit() - def prepare_files(self, finder): """ Prepare process. Create temp directories, download and/or unpack files.