35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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,
 | |
|         check_build_deps: bool,
 | |
|     ) -> None:
 | |
|         pass
 | 
