1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00

Merge pull request #7771 from chrahunt/refactor/remove-extra-no-clean

Do not update `no_clean` option value in install/wheel
This commit is contained in:
Christopher Hunt 2020-02-24 06:50:54 +08:00 committed by GitHub
commit 94c83c0766
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 64 deletions

View file

@ -23,11 +23,7 @@ from pip._internal.cli import cmdoptions
from pip._internal.cli.cmdoptions import make_target_python from pip._internal.cli.cmdoptions import make_target_python
from pip._internal.cli.req_command import RequirementCommand, with_cleanup from pip._internal.cli.req_command import RequirementCommand, with_cleanup
from pip._internal.cli.status_codes import ERROR, SUCCESS from pip._internal.cli.status_codes import ERROR, SUCCESS
from pip._internal.exceptions import ( from pip._internal.exceptions import CommandError, InstallationError
CommandError,
InstallationError,
PreviousBuildDirError,
)
from pip._internal.locations import distutils_scheme from pip._internal.locations import distutils_scheme
from pip._internal.operations.check import check_install_conflicts from pip._internal.operations.check import check_install_conflicts
from pip._internal.req import install_given_reqs from pip._internal.req import install_given_reqs
@ -438,9 +434,6 @@ class InstallCommand(RequirementCommand):
logger.error(message, exc_info=show_traceback) logger.error(message, exc_info=show_traceback)
return ERROR return ERROR
except PreviousBuildDirError:
options.no_clean = True
raise
if options.target_dir: if options.target_dir:
self._handle_target_dir( self._handle_target_dir(

View file

@ -12,7 +12,7 @@ import shutil
from pip._internal.cache import WheelCache from pip._internal.cache import WheelCache
from pip._internal.cli import cmdoptions from pip._internal.cli import cmdoptions
from pip._internal.cli.req_command import RequirementCommand, with_cleanup from pip._internal.cli.req_command import RequirementCommand, with_cleanup
from pip._internal.exceptions import CommandError, PreviousBuildDirError from pip._internal.exceptions import CommandError
from pip._internal.req.req_tracker import get_requirement_tracker from pip._internal.req.req_tracker import get_requirement_tracker
from pip._internal.utils.misc import ensure_dir, normalize_path from pip._internal.utils.misc import ensure_dir, normalize_path
from pip._internal.utils.temp_dir import TempDirectory from pip._internal.utils.temp_dir import TempDirectory
@ -127,65 +127,61 @@ class WheelCommand(RequirementCommand):
with get_requirement_tracker() as req_tracker, TempDirectory( with get_requirement_tracker() as req_tracker, TempDirectory(
options.build_dir, delete=build_delete, kind="wheel" options.build_dir, delete=build_delete, kind="wheel"
) as directory: ) as directory:
try: reqs = self.get_requirements(
reqs = self.get_requirements( args, options, finder, session,
args, options, finder, session, wheel_cache
wheel_cache )
)
preparer = self.make_requirement_preparer( preparer = self.make_requirement_preparer(
temp_build_dir=directory, temp_build_dir=directory,
options=options, options=options,
req_tracker=req_tracker, req_tracker=req_tracker,
session=session, session=session,
finder=finder, finder=finder,
wheel_download_dir=options.wheel_dir, wheel_download_dir=options.wheel_dir,
use_user_site=False, use_user_site=False,
) )
resolver = self.make_resolver( resolver = self.make_resolver(
preparer=preparer, preparer=preparer,
finder=finder, finder=finder,
options=options, options=options,
wheel_cache=wheel_cache, wheel_cache=wheel_cache,
ignore_requires_python=options.ignore_requires_python, ignore_requires_python=options.ignore_requires_python,
use_pep517=options.use_pep517, use_pep517=options.use_pep517,
) )
self.trace_basic_info(finder) self.trace_basic_info(finder)
requirement_set = resolver.resolve( requirement_set = resolver.resolve(
reqs, check_supported_wheels=True reqs, check_supported_wheels=True
) )
reqs_to_build = [ reqs_to_build = [
r for r in requirement_set.requirements.values() r for r in requirement_set.requirements.values()
if should_build_for_wheel_command(r) if should_build_for_wheel_command(r)
] ]
# build wheels # build wheels
build_successes, build_failures = build( build_successes, build_failures = build(
reqs_to_build, reqs_to_build,
wheel_cache=wheel_cache, wheel_cache=wheel_cache,
build_options=options.build_options or [], build_options=options.build_options or [],
global_options=options.global_options or [], global_options=options.global_options or [],
) )
for req in build_successes: for req in build_successes:
assert req.link and req.link.is_wheel assert req.link and req.link.is_wheel
assert req.local_file_path assert req.local_file_path
# copy from cache to target directory # copy from cache to target directory
try: try:
shutil.copy(req.local_file_path, options.wheel_dir) shutil.copy(req.local_file_path, options.wheel_dir)
except OSError as e: except OSError as e:
logger.warning( logger.warning(
"Building wheel for %s failed: %s", "Building wheel for %s failed: %s",
req.name, e, req.name, e,
)
build_failures.append(req)
if len(build_failures) != 0:
raise CommandError(
"Failed to build one or more wheels"
) )
except PreviousBuildDirError: build_failures.append(req)
options.no_clean = True if len(build_failures) != 0:
raise raise CommandError(
"Failed to build one or more wheels"
)