| from pip._vendor.packaging.utils import canonicalize_name | |
| from pip._internal.distributions.base import AbstractDistribution | |
| from pip._internal.index.package_finder import PackageFinder | |
| from pip._internal.metadata import ( | |
| BaseDistribution, | |
| FilesystemWheel, | |
| get_wheel_distribution, | |
| ) | |
| class WheelDistribution(AbstractDistribution): | |
| """Represents a wheel distribution. | |
| This does not need any preparation as wheels can be directly unpacked. | |
| """ | |
| def get_metadata_distribution(self) -> BaseDistribution: | |
| """Loads the metadata from the wheel file into memory and returns a | |
| Distribution that uses it, not relying on the wheel file or | |
| requirement. | |
| """ | |
| assert self.req.local_file_path, "Set as part of preparation during download" | |
| assert self.req.name, "Wheels are never unnamed" | |
| wheel = FilesystemWheel(self.req.local_file_path) | |
| return get_wheel_distribution(wheel, canonicalize_name(self.req.name)) | |
| def prepare_distribution_metadata( | |
| self, finder: PackageFinder, build_isolation: bool | |
| ) -> None: | |
| pass | |