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

Merge pull request #10509 from jdufresne/guards

This commit is contained in:
Tzu-ping Chung 2021-09-27 16:20:47 +08:00 committed by GitHub
commit 0442875a68
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 37 deletions

View file

@ -17,6 +17,7 @@ from typing import (
from pip._vendor.packaging.requirements import Requirement
from pip._vendor.packaging.specifiers import InvalidSpecifier, SpecifierSet
from pip._vendor.packaging.utils import NormalizedName
from pip._vendor.packaging.version import LegacyVersion, Version
from pip._internal.models.direct_url import (
@ -30,8 +31,6 @@ from pip._internal.utils.urls import url_to_path
if TYPE_CHECKING:
from typing import Protocol
from pip._vendor.packaging.utils import NormalizedName
else:
Protocol = object
@ -114,7 +113,7 @@ class BaseDistribution(Protocol):
raise NotImplementedError()
@property
def canonical_name(self) -> "NormalizedName":
def canonical_name(self) -> NormalizedName:
raise NotImplementedError()
@property

View file

@ -1,18 +1,10 @@
import email.message
import logging
from typing import (
TYPE_CHECKING,
Collection,
Iterable,
Iterator,
List,
NamedTuple,
Optional,
)
from typing import Collection, Iterable, Iterator, List, NamedTuple, Optional
from pip._vendor import pkg_resources
from pip._vendor.packaging.requirements import Requirement
from pip._vendor.packaging.utils import canonicalize_name
from pip._vendor.packaging.utils import NormalizedName, canonicalize_name
from pip._vendor.packaging.version import parse as parse_version
from pip._internal.utils import misc # TODO: Move definition here.
@ -27,9 +19,6 @@ from .base import (
Wheel,
)
if TYPE_CHECKING:
from pip._vendor.packaging.utils import NormalizedName
logger = logging.getLogger(__name__)
@ -58,7 +47,7 @@ class Distribution(BaseDistribution):
return self._dist.egg_info
@property
def canonical_name(self) -> "NormalizedName":
def canonical_name(self) -> NormalizedName:
return canonicalize_name(self._dist.project_name)
@property

View file

@ -2,19 +2,16 @@
"""
import logging
from typing import TYPE_CHECKING, Callable, Dict, List, NamedTuple, Optional, Set, Tuple
from typing import Callable, Dict, List, NamedTuple, Optional, Set, Tuple
from pip._vendor.packaging.requirements import Requirement
from pip._vendor.packaging.utils import canonicalize_name
from pip._vendor.packaging.utils import NormalizedName, canonicalize_name
from pip._internal.distributions import make_distribution_for_install_requirement
from pip._internal.metadata import get_default_environment
from pip._internal.metadata.base import DistributionVersion
from pip._internal.req.req_install import InstallRequirement
if TYPE_CHECKING:
from pip._vendor.packaging.utils import NormalizedName
logger = logging.getLogger(__name__)
@ -24,12 +21,12 @@ class PackageDetails(NamedTuple):
# Shorthands
PackageSet = Dict["NormalizedName", PackageDetails]
Missing = Tuple["NormalizedName", Requirement]
Conflicting = Tuple["NormalizedName", DistributionVersion, Requirement]
PackageSet = Dict[NormalizedName, PackageDetails]
Missing = Tuple[NormalizedName, Requirement]
Conflicting = Tuple[NormalizedName, DistributionVersion, Requirement]
MissingDict = Dict["NormalizedName", List[Missing]]
ConflictingDict = Dict["NormalizedName", List[Conflicting]]
MissingDict = Dict[NormalizedName, List[Missing]]
ConflictingDict = Dict[NormalizedName, List[Conflicting]]
CheckResult = Tuple[MissingDict, ConflictingDict]
ConflictDetails = Tuple[PackageSet, CheckResult]
@ -118,7 +115,7 @@ def check_install_conflicts(to_install: List[InstallRequirement]) -> ConflictDet
def _simulate_installation_of(
to_install: List[InstallRequirement], package_set: PackageSet
) -> Set["NormalizedName"]:
) -> Set[NormalizedName]:
"""Computes the version of packages after installing to_install."""
# Keep track of packages that were installed
installed = set()
@ -136,8 +133,8 @@ def _simulate_installation_of(
def _create_whitelist(
would_be_installed: Set["NormalizedName"], package_set: PackageSet
) -> Set["NormalizedName"]:
would_be_installed: Set[NormalizedName], package_set: PackageSet
) -> Set[NormalizedName]:
packages_affected = set(would_be_installed)
for package_name in package_set:

View file

@ -2,9 +2,10 @@
"""
import re
from typing import TYPE_CHECKING, List, Optional, Tuple
from typing import List, Optional, Tuple
from pip._vendor.packaging.tags import (
PythonVersion,
Tag,
compatible_tags,
cpython_tags,
@ -14,10 +15,6 @@ from pip._vendor.packaging.tags import (
mac_platforms,
)
if TYPE_CHECKING:
from pip._vendor.packaging.tags import PythonVersion
_osx_arch_pat = re.compile(r"(.+)_(\d+)_(\d+)_(.+)")
@ -95,7 +92,7 @@ def _expand_allowed_platforms(platforms: Optional[List[str]]) -> Optional[List[s
return result
def _get_python_version(version: str) -> "PythonVersion":
def _get_python_version(version: str) -> PythonVersion:
if len(version) > 1:
return int(version[0]), int(version[1:])
else:
@ -132,7 +129,7 @@ def get_supported(
"""
supported: List[Tag] = []
python_version: Optional["PythonVersion"] = None
python_version: Optional[PythonVersion] = None
if version is not None:
python_version = _get_python_version(version)