From 534a1025641ef6b3bf20545e253b8004c5ddd4d5 Mon Sep 17 00:00:00 2001 From: Pradyun Gedam Date: Sun, 16 Jun 2019 00:34:15 +0530 Subject: [PATCH 1/3] Rename make_abstract_dist Use a more descriptive name make_distribution_for_install_requirement() --- src/pip/_internal/distributions/__init__.py | 2 +- src/pip/_internal/operations/check.py | 6 ++++-- src/pip/_internal/operations/prepare.py | 8 +++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/pip/_internal/distributions/__init__.py b/src/pip/_internal/distributions/__init__.py index 92ea47336..fdf332a81 100644 --- a/src/pip/_internal/distributions/__init__.py +++ b/src/pip/_internal/distributions/__init__.py @@ -8,7 +8,7 @@ if MYPY_CHECK_RUNNING: from pip._internal.req.req_install import InstallRequirement -def make_abstract_dist(install_req): +def make_distribution_for_install_requirement(install_req): # type: (InstallRequirement) -> AbstractDistribution """Returns a Distribution for the given InstallRequirement """ diff --git a/src/pip/_internal/operations/check.py b/src/pip/_internal/operations/check.py index f8653c894..73a8a9ffa 100644 --- a/src/pip/_internal/operations/check.py +++ b/src/pip/_internal/operations/check.py @@ -7,7 +7,9 @@ from collections import namedtuple from pip._vendor.packaging.utils import canonicalize_name from pip._vendor.pkg_resources import RequirementParseError -from pip._internal.distributions import make_abstract_dist +from pip._internal.distributions import ( + make_distribution_for_install_requirement, +) from pip._internal.utils.misc import get_installed_distributions from pip._internal.utils.typing import MYPY_CHECK_RUNNING @@ -130,7 +132,7 @@ def _simulate_installation_of(to_install, package_set): # Modify it as installing requirement_set would (assuming no errors) for inst_req in to_install: - dist = make_abstract_dist(inst_req).dist() + dist = make_distribution_for_install_requirement(inst_req).dist() name = canonicalize_name(dist.key) package_set[name] = PackageDetails(dist.version, dist.requires()) diff --git a/src/pip/_internal/operations/prepare.py b/src/pip/_internal/operations/prepare.py index 3a4a70699..981f79725 100644 --- a/src/pip/_internal/operations/prepare.py +++ b/src/pip/_internal/operations/prepare.py @@ -6,7 +6,9 @@ import os from pip._vendor import requests -from pip._internal.distributions import make_abstract_dist +from pip._internal.distributions import ( + make_distribution_for_install_requirement, +) from pip._internal.distributions.installed import InstalledDistribution from pip._internal.download import ( is_dir_url, is_file_url, is_vcs_url, unpack_url, url_to_path, @@ -207,7 +209,7 @@ class RequirementPreparer(object): 'error %s for URL %s' % (req, exc, req.link) ) - abstract_dist = make_abstract_dist(req) + abstract_dist = make_distribution_for_install_requirement(req) with self.req_tracker.track(req): abstract_dist.prep_for_dist(finder, self.build_isolation) if self._download_should_save: @@ -240,7 +242,7 @@ class RequirementPreparer(object): req.ensure_has_source_dir(self.src_dir) req.update_editable(not self._download_should_save) - abstract_dist = make_abstract_dist(req) + abstract_dist = make_distribution_for_install_requirement(req) with self.req_tracker.track(req): abstract_dist.prep_for_dist(finder, self.build_isolation) From 7908973c0781dc3bcf55aa24733d49a89e838c50 Mon Sep 17 00:00:00 2001 From: Pradyun Gedam Date: Sun, 16 Jun 2019 05:17:18 +0530 Subject: [PATCH 2/3] Rename AbstractDistribution.dist() Use a more descriptive name get_pkg_resources_distribution() --- src/pip/_internal/distributions/base.py | 3 +-- src/pip/_internal/distributions/installed.py | 2 +- src/pip/_internal/distributions/source.py | 2 +- src/pip/_internal/distributions/wheel.py | 2 +- src/pip/_internal/legacy_resolve.py | 2 +- src/pip/_internal/operations/check.py | 4 +++- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/pip/_internal/distributions/base.py b/src/pip/_internal/distributions/base.py index 710b98911..40beae755 100644 --- a/src/pip/_internal/distributions/base.py +++ b/src/pip/_internal/distributions/base.py @@ -24,9 +24,8 @@ class AbstractDistribution(object): super(AbstractDistribution, self).__init__() self.req = req - # TODO: Give this a better name. @abc.abstractmethod - def dist(self): + def get_pkg_resources_distribution(self): raise NotImplementedError() # TODO: Give this a better name. diff --git a/src/pip/_internal/distributions/installed.py b/src/pip/_internal/distributions/installed.py index c4dfaa565..a1328d22e 100644 --- a/src/pip/_internal/distributions/installed.py +++ b/src/pip/_internal/distributions/installed.py @@ -8,7 +8,7 @@ class InstalledDistribution(AbstractDistribution): been computed. """ - def dist(self): + def get_pkg_resources_distribution(self): return self.req.satisfied_by def prep_for_dist(self, finder, build_isolation): diff --git a/src/pip/_internal/distributions/source.py b/src/pip/_internal/distributions/source.py index 4bec64a29..639ac6c4d 100644 --- a/src/pip/_internal/distributions/source.py +++ b/src/pip/_internal/distributions/source.py @@ -19,7 +19,7 @@ class SourceDistribution(AbstractDistribution): bringing logic for preparation out of InstallRequirement into this class. """ - def dist(self): + def get_pkg_resources_distribution(self): return self.req.get_dist() def prep_for_dist(self, finder, build_isolation): diff --git a/src/pip/_internal/distributions/wheel.py b/src/pip/_internal/distributions/wheel.py index 90883bc4d..c8cd9b0c0 100644 --- a/src/pip/_internal/distributions/wheel.py +++ b/src/pip/_internal/distributions/wheel.py @@ -9,7 +9,7 @@ class WheelDistribution(AbstractDistribution): This does not need any preparation as wheels can be directly unpacked. """ - def dist(self): + def get_pkg_resources_distribution(self): return list(pkg_resources.find_distributions( self.req.source_dir))[0] diff --git a/src/pip/_internal/legacy_resolve.py b/src/pip/_internal/legacy_resolve.py index 08347b53e..c95e388a4 100644 --- a/src/pip/_internal/legacy_resolve.py +++ b/src/pip/_internal/legacy_resolve.py @@ -358,7 +358,7 @@ class Resolver(object): abstract_dist = self._get_abstract_dist_for(req_to_install) # Parse and return dependencies - dist = abstract_dist.dist() + dist = abstract_dist.get_pkg_resources_distribution() # This will raise UnsupportedPythonVersion if the given Python # version isn't compatible with the distribution's Requires-Python. _check_dist_requires_python( diff --git a/src/pip/_internal/operations/check.py b/src/pip/_internal/operations/check.py index 73a8a9ffa..7b8b369fc 100644 --- a/src/pip/_internal/operations/check.py +++ b/src/pip/_internal/operations/check.py @@ -132,7 +132,9 @@ def _simulate_installation_of(to_install, package_set): # Modify it as installing requirement_set would (assuming no errors) for inst_req in to_install: - dist = make_distribution_for_install_requirement(inst_req).dist() + abstract_dist = make_distribution_for_install_requirement(inst_req) + dist = abstract_dist.get_pkg_resources_distribution() + name = canonicalize_name(dist.key) package_set[name] = PackageDetails(dist.version, dist.requires()) From a0670a9c98e91c4b652909c6b43b29eae4a49fff Mon Sep 17 00:00:00 2001 From: Pradyun Gedam Date: Sun, 16 Jun 2019 05:23:03 +0530 Subject: [PATCH 3/3] Rename AbstractDistribution.prep_for_dist() Use a better name prepare_distribution_metadata() --- src/pip/_internal/distributions/base.py | 3 +-- src/pip/_internal/distributions/installed.py | 2 +- src/pip/_internal/distributions/source.py | 2 +- src/pip/_internal/distributions/wheel.py | 2 +- src/pip/_internal/operations/prepare.py | 8 ++++++-- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/pip/_internal/distributions/base.py b/src/pip/_internal/distributions/base.py index 40beae755..b9af3f025 100644 --- a/src/pip/_internal/distributions/base.py +++ b/src/pip/_internal/distributions/base.py @@ -28,7 +28,6 @@ class AbstractDistribution(object): def get_pkg_resources_distribution(self): raise NotImplementedError() - # TODO: Give this a better name. @abc.abstractmethod - def prep_for_dist(self, finder, build_isolation): + def prepare_distribution_metadata(self, finder, build_isolation): raise NotImplementedError() diff --git a/src/pip/_internal/distributions/installed.py b/src/pip/_internal/distributions/installed.py index a1328d22e..c4a64e7ca 100644 --- a/src/pip/_internal/distributions/installed.py +++ b/src/pip/_internal/distributions/installed.py @@ -11,5 +11,5 @@ class InstalledDistribution(AbstractDistribution): def get_pkg_resources_distribution(self): return self.req.satisfied_by - def prep_for_dist(self, finder, build_isolation): + def prepare_distribution_metadata(self, finder, build_isolation): pass diff --git a/src/pip/_internal/distributions/source.py b/src/pip/_internal/distributions/source.py index 639ac6c4d..e5d9fd4bf 100644 --- a/src/pip/_internal/distributions/source.py +++ b/src/pip/_internal/distributions/source.py @@ -22,7 +22,7 @@ class SourceDistribution(AbstractDistribution): def get_pkg_resources_distribution(self): return self.req.get_dist() - def prep_for_dist(self, finder, build_isolation): + def prepare_distribution_metadata(self, finder, build_isolation): # Prepare for building. We need to: # 1. Load pyproject.toml (if it exists) # 2. Set up the build environment diff --git a/src/pip/_internal/distributions/wheel.py b/src/pip/_internal/distributions/wheel.py index c8cd9b0c0..de7be38ee 100644 --- a/src/pip/_internal/distributions/wheel.py +++ b/src/pip/_internal/distributions/wheel.py @@ -13,5 +13,5 @@ class WheelDistribution(AbstractDistribution): return list(pkg_resources.find_distributions( self.req.source_dir))[0] - def prep_for_dist(self, finder, build_isolation): + def prepare_distribution_metadata(self, finder, build_isolation): pass diff --git a/src/pip/_internal/operations/prepare.py b/src/pip/_internal/operations/prepare.py index 981f79725..6cf5f0edd 100644 --- a/src/pip/_internal/operations/prepare.py +++ b/src/pip/_internal/operations/prepare.py @@ -211,7 +211,9 @@ class RequirementPreparer(object): ) abstract_dist = make_distribution_for_install_requirement(req) with self.req_tracker.track(req): - abstract_dist.prep_for_dist(finder, self.build_isolation) + abstract_dist.prepare_distribution_metadata( + finder, self.build_isolation, + ) if self._download_should_save: # Make a .zip of the source_dir we already created. if not req.link.is_artifact: @@ -244,7 +246,9 @@ class RequirementPreparer(object): abstract_dist = make_distribution_for_install_requirement(req) with self.req_tracker.track(req): - abstract_dist.prep_for_dist(finder, self.build_isolation) + abstract_dist.prepare_distribution_metadata( + finder, self.build_isolation, + ) if self._download_should_save: req.archive(self.download_dir)