From 82dbcdae87f7a8aaaf1a9bae663a5fac8c856a40 Mon Sep 17 00:00:00 2001 From: Prabakaran Kumaresshan Date: Fri, 2 Aug 2019 08:59:44 +0530 Subject: [PATCH] Add make_requirement_preparer() to RequirementCommand base class (#6810) --- src/pip/_internal/cli/base_command.py | 25 +++++++++++++++++++++++++ src/pip/_internal/commands/download.py | 12 ++++-------- src/pip/_internal/commands/install.py | 12 +++--------- src/pip/_internal/commands/wheel.py | 12 ++++-------- 4 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/pip/_internal/cli/base_command.py b/src/pip/_internal/cli/base_command.py index fd771b141..a17d6640c 100644 --- a/src/pip/_internal/cli/base_command.py +++ b/src/pip/_internal/cli/base_command.py @@ -33,6 +33,7 @@ from pip._internal.exceptions import ( from pip._internal.index import PackageFinder from pip._internal.models.selection_prefs import SelectionPreferences from pip._internal.models.target_python import TargetPython +from pip._internal.operations.prepare import RequirementPreparer from pip._internal.req.constructors import ( install_req_from_editable, install_req_from_line, @@ -50,6 +51,8 @@ if MYPY_CHECK_RUNNING: from optparse import Values from pip._internal.cache import WheelCache from pip._internal.req.req_set import RequirementSet + from pip._internal.req.req_tracker import RequirementTracker + from pip._internal.utils.temp_dir import TempDirectory __all__ = ['Command'] @@ -257,6 +260,28 @@ class Command(object): class RequirementCommand(Command): + @staticmethod + def make_requirement_preparer( + temp_directory, # type: TempDirectory + options, # type: Values + req_tracker, # type: RequirementTracker + download_dir=None, # type: str + wheel_download_dir=None, # type: str + ): + # type: (...) -> RequirementPreparer + """ + Create a RequirementPreparer instance for the given parameters. + """ + return RequirementPreparer( + build_dir=temp_directory.path, + src_dir=options.src_dir, + download_dir=download_dir, + wheel_download_dir=wheel_download_dir, + progress_bar=options.progress_bar, + build_isolation=options.build_isolation, + req_tracker=req_tracker, + ) + @staticmethod def populate_requirement_set(requirement_set, # type: RequirementSet args, # type: List[str] diff --git a/src/pip/_internal/commands/download.py b/src/pip/_internal/commands/download.py index 2bb27f876..fd299d708 100644 --- a/src/pip/_internal/commands/download.py +++ b/src/pip/_internal/commands/download.py @@ -7,7 +7,6 @@ from pip._internal.cli import cmdoptions from pip._internal.cli.base_command import RequirementCommand from pip._internal.cli.cmdoptions import make_target_python from pip._internal.legacy_resolve import Resolver -from pip._internal.operations.prepare import RequirementPreparer from pip._internal.req import RequirementSet from pip._internal.req.req_tracker import RequirementTracker from pip._internal.utils.filesystem import check_path_owner @@ -126,14 +125,11 @@ class DownloadCommand(RequirementCommand): None ) - preparer = RequirementPreparer( - build_dir=directory.path, - src_dir=options.src_dir, - download_dir=options.download_dir, - wheel_download_dir=None, - progress_bar=options.progress_bar, - build_isolation=options.build_isolation, + preparer = self.make_requirement_preparer( + temp_directory=directory, + options=options, req_tracker=req_tracker, + download_dir=options.download_dir, ) resolver = Resolver( diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py index 38166b855..9b2fa0dca 100644 --- a/src/pip/_internal/commands/install.py +++ b/src/pip/_internal/commands/install.py @@ -22,7 +22,6 @@ from pip._internal.exceptions import ( from pip._internal.legacy_resolve import Resolver from pip._internal.locations import distutils_scheme from pip._internal.operations.check import check_install_conflicts -from pip._internal.operations.prepare import RequirementPreparer from pip._internal.req import RequirementSet, install_given_reqs from pip._internal.req.req_tracker import RequirementTracker from pip._internal.utils.filesystem import check_path_owner @@ -322,16 +321,11 @@ class InstallCommand(RequirementCommand): requirement_set, args, options, finder, session, self.name, wheel_cache ) - preparer = RequirementPreparer( - build_dir=directory.path, - src_dir=options.src_dir, - download_dir=None, - wheel_download_dir=None, - progress_bar=options.progress_bar, - build_isolation=options.build_isolation, + preparer = self.make_requirement_preparer( + temp_directory=directory, + options=options, req_tracker=req_tracker, ) - resolver = Resolver( preparer=preparer, finder=finder, diff --git a/src/pip/_internal/commands/wheel.py b/src/pip/_internal/commands/wheel.py index a246db655..84b4d32bc 100644 --- a/src/pip/_internal/commands/wheel.py +++ b/src/pip/_internal/commands/wheel.py @@ -9,7 +9,6 @@ from pip._internal.cli import cmdoptions from pip._internal.cli.base_command import RequirementCommand from pip._internal.exceptions import CommandError, PreviousBuildDirError from pip._internal.legacy_resolve import Resolver -from pip._internal.operations.prepare import RequirementPreparer from pip._internal.req import RequirementSet from pip._internal.req.req_tracker import RequirementTracker from pip._internal.utils.temp_dir import TempDirectory @@ -129,14 +128,11 @@ class WheelCommand(RequirementCommand): self.name, wheel_cache ) - preparer = RequirementPreparer( - build_dir=directory.path, - src_dir=options.src_dir, - download_dir=None, - wheel_download_dir=options.wheel_dir, - progress_bar=options.progress_bar, - build_isolation=options.build_isolation, + preparer = self.make_requirement_preparer( + temp_directory=directory, + options=options, req_tracker=req_tracker, + wheel_download_dir=options.wheel_dir, ) resolver = Resolver(