Tipragot
628be439b8
Cela permet de ne pas avoir de problèmes de compatibilité car python est dans le git.
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from typing import Optional
|
|
|
|
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.
|
|
"""
|
|
|
|
@property
|
|
def build_tracker_id(self) -> Optional[str]:
|
|
return None
|
|
|
|
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
|